1장. 들어가기
1. 이 책은 자바 언어와 그 기반 라이브러리, 즉 java.lang, java.util, java.io, java.util.concurrent, java.util.function 같은 하위 패키지를 효과적으로 사용하게끔 구성했음(때때로 다른 패키지도 다룸)
2. 많은 디자인 패턴과 관용구를 설명해줌
3. 이 책의 규칙 대부분은 아주 핵심적인 기본 원칙 몇 개에서 파생됨
바로 명료성과 단순성임.
- 컴포넌트는 사용자를 놀라게하는 동작을 해서는 절대는 안됨.
- 코드는 복사되는게 아니라 재사용되어야함.
- 컴포넌트 사이의 의존성은 최소로 유지해야함.
4. 기술 용어는 대부분 자바 8용 언어 명세를 따르며, 주요사항은 아래와 같음
- 자바가 지원하는 타입은 인터페이스, 클래스, 배열, 기본타입 까지 총 4가지임.
- 애너테이션(annotation)은 인터페이스의 일종
- 열거 타입(enum)은 클래스의 일종
- 인터페이스, 클래스, 배열은 참조타입(reference type)이라고 함
- 즉, 인터페이스, 클래스, 배열은 객체(object)이고 기본타입은 그렇지 않음
- 클래스의 멤버로는 필드, 매서드, 멤버 클래스, 멤버 인터페이스가 있음
- 메서드 시그니처는 메서드의 이름과 입력 매개변수(parameter)의 타입들로 이뤄짐(반환값의 타입은 시그니처에 포함되지 않음
)
* 참고
메소드 시그니처(method signature)
메소드 오버로딩의 핵심은 바로 메소드 시그니처(method signature)에 있습니다.
메소드 시그니처란 메소드의 선언부에 명시되는 매개변수의 리스트를 가리킵니다.
만약 두 메소드가 매개변수의 개수와 타입, 그 순서까지 모두 같다면, 이 두 메소드의 시그니처는 같다고 할 수 있습니다.