목록2024/01/19 (3)
테크 로그포스 Tech Log Force
Java를 공부해 본 사람이라면 다들 이런 말은 들어보셨을 것이다. Object는 모든 Class들의 최상위 클래스다. OOP를 공부하면서 Object 클래스를 제대로 살펴보지 않을 수는 없지!!! 우선 위의 말이 진짜인지 내 두 눈으로 직접 봐야겠다. API docs를 살펴보자!!! 1. 진짜 그런가요? 아~~~무 클래스나 눌러봤다. Hierarchy부분을 보면 java.lang.Object를 공유하고 있는 것을 알 수 있다. 다른 클래스도 아~~~무거나 눌러봤다. 얘 또한 마찬가지!!! 뭘 들어가봐도 전부 java.lang.Object가 최상위에 있는 것을 확인할 수 있다. 그럼 이제 Object 클래스도 한 번 살펴보자. java.lang.Object는? Hierarchy부분에 유일하게 상위 클래스..
아주 단순한 예시를 가져와봤다. 기존에는 진짜 단순히, 한 Line이 길어지면 가독성이 떨어지는 것 같아서 Scanner keyboard = new Scanner(System.in); 이런식으로 따로 인스턴스화를 했던 경험이 있다. 그러나 keyboard인스턴스는 입력을 한 번만 받고 이후에는 필요도 없는데, 메모리 공간을 계속 쥐고 있게 되니 Java에서 할당 해제 된 메모리를 청소하는 Garbage collection을 할 수가 없다. 그래서 위와 같이 일시적으로만 할당하도록 코드를 수정하였다.
별찍기 메서드다. 상태를 변화시키지 않는 단순function이므로, static으로 선언하였다. 이 메서드는 편의상 main()과 같은 클래스에 담긴 상태다. 같은 클래스에 있는 static메서드끼리는 호출 시 Class명을 써주지 않아도 바로 접근해 호출이 가능하다. 그런데 현업에서는 main()과 Bean을 철저히 구분한다고 한다. 그래서 이러한 메서드가 main()과 같은 클래스에 담길 가능성이 거의 없다. 그럼 서로 다른 클래스에 담긴 static메서드들이 되므로, 위와 같은 코드는 에러가 발생할 것이다. 그러므로 이렇게 클래스명(static 메서드니까)을 통해 접근해주는 것이 건강에 좋다. + 물론 클래스명.메서드()이렇게 한다고 전부 문제가 없는 것은 아닐 것이다. 나는 ClassPath를 현..