Effective Java
자바 교과서
- List
- [[ITEM14]] comparable 을 구현할지 고려하라.
- 4장 클래스와 인터페이스
- [[ITEM15]] 클래스와 멤버의 접근권한을 최소화하라
- [[ITEM16]] public 클래스에서는 public 필드가 아닌 접근자 메서드를 사용하라.
- [[ITEM17]] 변경가능성을 최소화하라.
- [[ITEM18]] 상속보다는 컴포지션을 사용하라
- [[ITEM19]] 상속을 고려해 설계하고 문서화하라. 그러지 않았다면 상속을 금지하라.
- [[ITEM20]] 추상 클래스보다는 인터페이스를 우선하라.
- [[ITEM21]] 인터페이스는 구현하는 쪽을 생각해 설계하라.
- [[ITEM22]] 인터페이스는 타입을 정의하는 용도로만 사용하라.
- [[ITEM23]] 태그 달린 클래스보다는 클래스 계층구조를 활용하라.
- [[ITEM24]] 멤버 클래스는 되도록 static 으로 만들어라.
- [[ITEM25]] 톱레벨 클래스는 한 파일에 하나만 담으라.
- 5장 제네릭
- 6장열거타입과 애너테이션
- [[ITEM34]] int 상수 대신 열거 타입을 사용하라.
- [[ITEM35]] ordinal 메서드 대신 인스턴스 필드를 사용하라.
- [[ITEM36]] 비트필드 대신 EnumSet 을 사용하라
- [[ITEM37]] ordinal 인덱싱 대신 EnumMap 을 사용하라.
- [[ITEM38]] 확장할 수 있는 열거 타입이 필요하면 인터페이스를 사용하라.
- [[ITEM39]] 명명패턴보다 애너테이션을 사용하라.
- [[ITEM40]] @Override 애너테이션을 일관 되게 사용하라.
- [[ITEM41]] 정의하려는 것이 타입이라면 마커 인터페이스를 사용하라
- 7장 람다와 스트림
- 8장 메서드
- 9장 일반적인 프로그래밍 원칙