2025/01 2

[Effective Java] Chapter 3

Chapter 3 모든 객체의 공통 메서드 Object에서 final이 아닌 메서드는 모두 재정의를 염두에 두고 설계된 것이라 재정의 시 지켜야하는 일반 규약이 명확히 정의되어있다. 메서드를 잘못 구현하면 대상 클래스가 이 규약을 준수한다고 가정하는 클래스를 오동작하게 만들 수 있다.Item 10 equals는 일반 규약을 지켜 재정의하라 아래의 상황에서는 재정의를 최대한 피하도록하자!각 인스턴스가 본질적으로 고유하다.값을 표현하는 게 아니라 동적하는 개체를 표현하는 클래스가 여기 해당한다.인스턴스의 '논리적 동치성(logical equality)'을 검사할 일이 없다.논리적 동치성을 원하지 않다면 재정의하지 않아도 된다.상위 클래스에서 재정의한 equals가 하위 클래스에도 딱 들어맞는다.대부분의 Se..

[Effective Java] Chapter 2

Chapter 2Item 1 생성자 대신 정적 팩터리 메서드를 고려하라정적 팩터리 메서드가 생성자 보다 좋은 장점 다섯가지.- 이름을 가질 수 있다.  정적 팩터리는 이름만 잘 지으면 반환될 객체의 특성을 쉽게 묘사할 수 있다. // 생성자BigInteger(int, int, Random)//정적 팩터리 메서드BigInteger.probablePrime  - 호출될 때마다 인스턴스를 새로 생성하지는 않아도 된다. 이는 인스터스를 미리 만들어 놓거나 새로 생성한 인스턴스를 캐싱하여 재활용하는 식으로 불피요한 객체 생성을 피할 수 있다. 대표적인 예인 Boolean.valueOf(boolean) 메서드는 객체를 아예 생성하지 않는다. (?)  반복되는 요청에 같은 객체를 반환하는 식으로 정적 팩터리 방식의 ..