- 생성자 대신 static 팩토리 메소드 사용을 고려하자
- 생성자에 매개변수가 많은 때는 빌더를 고려하자
- private 생성자나 enum 타입을 사용해서 싱글톤의 특성을 유지하자
- private 생성자를 사용해서 인스턴스 생성을 못하게 하자
- 불필요한 객체의 생성을 피하자
- 쓸모 없는 객체 참조를 제거하자
- 파이널라이저의 사용을 피하자
- equals 메소드를 오버라이딩 할 때는 보편적 계약을 따르자
- equals 메소드를 오버라이드 할 때는 hashCode 메소드도 항상 같이 오버라이드 하자
- toString 메소드는 항상 오버라이드 하자
- clone을 재정의할 때는 신중하라
- Comparable 구현을 고려하라
- 클래스와 그 멤버의 접근성을 최소화하자