Effective Java 1 Introduce
- 명료성과 단순성이 무엇보다 중요하다.
- 컴포넌트는 정해진 동작이나 예측할 수 있는 동작만 수행해야 한다.
- 컴포넌트는 가능한 한 작되, 그렇다고 너무 작아서는 안 된다.
- 코드는 복사되는 게 아니라 재사용되어야 한다.
- 컴포넌트 사이의 의존성은 최소로 유지해야 한다.
-
오류는 만들어지자마자 가능한 한 빨리 (되도록 컴파일 타임에) 잡아야 한다.
- 프로그래밍 고수 경지에 오르려면 먼저 정석이 되는 규칙들을 배운 후, 언제 그 규칙을 깨도 되느냐를 익혀야 한다.
자바 타입 4가지
- 인터페이스 (참조 타입)
- 클래스 (참조 타입)
- 배열 (참조 타입)
- 기본타입(primitive)
- 클래스의 인스턴스와 배열은 객체인 반면 기본 타입은 그렇지 않다.
애너테이션
- 인터페이스의 일종
열거 타입(enum)
- 클래스의 일종
클래스 멤버
- 필드
- 객체 데이터 저장되는 곳
- 메서드
- 멤버 클래스
- 멤버 인터페이스
메서드 시그니처
- 메서드 이름
- 입력 매개변수 타입들
- 반환값 타입은 시그니처에 포함되지 않는다.
인터페이스 상속 대신
- 클래스가 인터페이스를 구현한다.
- 인터페이스가 다른 인터페이스를 확장한다.
API
- 사용자: API를 사용하는 프로그램 작성자
- 클라이언트: API를 사용하는 클래스(코드)
- API 요소: 클래스, 인터페이스, 생성자, 멤버, 직렬화된 형태