줄이 그어진 텍스트는 기록 용도로 본 내용과는 무관합니다.Comment.of() 메서드는 Comment 객체 참조로 변환해주는데, 이런 메서드를 정적 팩터리 메서드라고 한다. 이름을 가질 수 있다.BigInteger클래스는 값이 소수인 BigInteger 클래스를 반환
선택적 매개변수가 많을때 대응하기 어렵다.만약 테스트 코드에서 특정 필드 값은 필요 없다면 아래와 같이 새로운 매개변수 조합을 가지는 생성자(점층적 생성자 패턴)를 생성하거나 임의의 값을 넘겨주어야 한다.매개변수의 개수가 많아지면 클라이언트 코드를 작성하거나 읽기 어렵
첫번째 방법은 public static final 필드 방식의 싱글턴이다.public이나 protected 생성자가 없기 때문에 전체 시스템에서 인스턴스가 하나만 생성됨을 보장할 수 있다.하지만 리플렉션 API를 사용하면 인스턴스가 여러 개 생성될 수도 있다.두 번째
정적 멤버만 담은 유틸리티 클래스는 인스턴스로 만들어 쓰려고 설계한 게 아니다. 추상 클래스로 만드는 것으로 인스턴스화를 막을 수 없다. 추상 클래스를 상속해서 인스턴스화하면 인스턴스화가 얼마든지 가능하다.어떤 생성자도 만들지 않으면 컴파일러는 자동으로 기본 생성자를
자원을 직접 명시하지 말고 의존 객체 주입을 사용하라
불필요한 객체 생성을 피하라
다 쓴 객체 참조를 해제하라
finalizer와 cleaner 사용을 피하라
반환해야 하는 자원은 대부분 finalizer를 활용하고 있지만 finalizer는 적절한 방법이 아니다. (아이템 8)그래서 전통적으로 많이 사용되어 온 것이 try-finally이다.파일에서 한 줄을 읽고 자원을 반환하는 코드이다. 그런데 br.readLine()과
equals는 일반 규약을 지켜 재정의하라
equals를 재정의하려거든 hashCode도 재정의하라
toString을 항상 재정의하라
참고(https://johngrib.github.io/wiki/java/object-clone/1\. Object.clone()은 기본적으로 protected이기 때문에 하위 클래스에서 public으로 오버라이드 해주어야 한다. 이때 반환 타입은 Object가