<이펙티브 자바> 3. 모든 객체의 공통 메서드
by BFine반응형
www.yes24.com/Product/Goods/65551284
3장
3-1 equals는 일반 규약을 지켜 재정의 해라
- 재정의 할때
- 상위 클래스의 equals가 완벽하게 동일한지 판단 못하는경우
- 조건 4가지
- 반사성
- 객체는 자기자신과 같아야함
- 대칭성
- 서로에 대한 동치여부에 똑같이 답해야함
- 추이성
- a == b , b == c 이면 a == c
- 일관성
- 수정되지않는한 항상 같아야한다.
- Null
- 반사성
- 구현방법
- == 이용해 자기 참조인지 확인
- instanceof 로 올바른 타입인지 확인
- 입력을 형변환
- 핵심 필드들이 모두 일치하는지 하나씩 검사
- equals를 재정의할땐 hashCode도 재정의
3-2 hashCode도 재정의하라
- 논리적으로 같은 객체는 같은 해시코드반환
- 만드는 방법
- 기본타입이라면 Type.hashCode를 사용
- 소수 * result + c
3-3 toString을 항상 재정의하라
3-4 clone 재정의는 주의하자
- Cloneable 인터페이스
- Object 의 clone 동작 방식을 결정
- clone
- 원본 객체에는 피해를 주지않고 복제된 객체의 불변을 보장해야함
3-5 Comparable 을 고려하라
-
Comparable을 구현한 객체
- Arrays.sort 사용가능
-
java 8 Comparator
- 성능저하 발생
-
CompareTo
- < , > 연산자는 쓰지말고 참조타입의 compare 메서드나 Compartor 인터페이스를 사용하자
반응형
'개발서적 > 이펙티브 자바' 카테고리의 다른 글
<이펙티브 자바> 7. 람다와 스트림 (0) | 2021.01.17 |
---|---|
<이펙티브 자바> 6. 열거 타입과 애너테이션 (0) | 2021.01.15 |
<이펙티브 자바> 5. 제네릭 (0) | 2021.01.14 |
<이펙티브 자바> 4. 클래스와 인터페이스 (0) | 2021.01.12 |
<이펙티브 자바> 2. 객체 생성과 파괴 (0) | 2021.01.10 |
블로그의 정보
57개월 BackEnd
BFine