목록전체 글 (121)
예지의 개발 로그포스 (Yeji's Log Force)
많은 사람들이 print(), println() 등 출력메서드를 사용할 때 toString()을 생략해도 된다! 라고 생각만 하거나 혹은 몰랐지만 그냥 그렇게 썼다거나 할 것이다. 도대체 왜 그런지 갑자기 궁금해서 패키지 소스코드를 뒤져봤다. 1. println() //파라미터가 boolean println() public void println(boolean x) { synchronized (this) { print(x); newLine(); } } //그 외 여러 오버로딩 된 println() . . . println()을 살펴보니 print()를 호출하고, 줄바꿈을 한다. 이것이 흔히 알고있는 print와 println(줄바꿈)의 차이이다. 2. print() //파라미터가 char인 print()..
지난 글에서 모든 Class들의 최상위 클래스가 Object라는 것을 살펴보았고, Object의 toString()메서드를 각 클래스들이 어떻게 오버라이딩해서 쓰고 있는지 확인했다. 이번에는Object의 메서드 중 equals()메서드를 살펴보려고 한다. Object obj를 파라미터로 받는 메서드인 만큼, Reference타입의 Casting에 대해서도 언급하려고 한다! 1. (인스턴스1 == 인스턴스2) 의 결과는?? 아래와 같이 Example 클래스를 인스턴스화 하여 1, "안녕"으로 상태 값을 설정했다고 하자. // Example클래스의 인스턴스 e1, e2생성 Example e1 = new Example(1, "안녕"); Example e2 = new Example(1, "안녕"); 이처럼 두 ..
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을 할 수가 없다. 그래서 위와 같이 일시적으로만 할당하도록 코드를 수정하였다.