책/Effective Java

책/Effective Java

[이펙티브 자바] 아이템15: 클래스와 멤버의 접근 권한을 최소화하라

본문은 Effective Java를 읽고 간단하게 정리한 글입니다. 필요에 따라 생략/수정된 부분이 있을 수 있으며, 내용이 추후 변경될 수 있습니다. 선결론 프로그램 요소의 접근성은 가능한 한 최소한으로 유지하자 꼭 필요한 것만 골라 최소한의 public API를 설계하자 이 모든 것은 '정보 은닉의 장점'을 취하기 위해서.. public 클래스는 상수용 public static final 필드 외에는 어떠한 public 필드도 가져서는 안 된다 public static final 필드가 참조하는 객체가 불변인지 확인하자 정보 은닉의 장점 여러 컴포넌트를 병렬로 개발 가능 → 시스템 개발 속도 향상 컴포넌트가 작게 나눠져 있기 때문에 디버깅도 쉽고 교체도 쉬움 → 시스템 관리 비용 낮춤 컴포넌트간 결합..

책/Effective Java

[이펙티브 자바] 아이템14: Comparable을 구현할지 고려하라

본문은 Effective Java를 읽고 간단하게 정리한 글입니다. 필요에 따라 생략/수정된 부분이 있을 수 있으며, 내용이 추후 변경될 수 있습니다. 선결론 순서를 고려해야 하는 값 클래스를 작성한다면 꼭 Comparable 인터페이스를 구현하자 compareTo 메서드에서 필드의 값을 비교할 때 부등호 연산자()는 사용하면 안된다 대신 Wrapper 클래스가 제공하는 static compare 메서드나 Comparator 인터페이스가 제공하는 비교자 생성 메서드를 사용하자 compareTo의 일반 규약 두 가지 차이를 빼고 compareTo는 기본적으로 equals와 비슷하다. compareTo는 동치성 비교 뿐만 아니라 순서까지 비교할 수 있다 또한, 제네릭하기 때문에 형변환에 대한 부담이 없다 따..

책/Effective Java

[이펙티브 자바] 아이템13: clone 재정의는 주의해서 진행하라

본문은 Effective Java를 읽고 간단하게 정리한 글입니다. 필요에 따라 생략/수정된 부분이 있을 수 있으며, 내용이 추후 변경될 수 있습니다. 선결론 clone은 문제가 많은 메서드이다 반드시 써야 하는 상황이 아니라면 쓰지말고, 써야 한다면 주의해서 재정의하라 복사가 필요한 경우엔 clone 대신 복사 생성자와 복사 팩터리를 사용하라 그러나 유일하게 배열은 일반적으로 clone을 사용해도 된다 clone의 문제 Unchecked Exception 핸들링 해줘야 함(try/catch) 허술한 규약 때문에 내부적으로 이상하게 재정의되어 원하는 대로 동작하지 않을 수 있음 예를 들어, 상위 클래스의 clone이 자신의 생성자를 호출하고 그 객체를 반환한다면 하위 클래스의 clone은 상위 클래스 객..

책/Effective Java

[이펙티브 자바] 아이템12: ToString을 항상 재정의하라

본문은 Effective Java를 읽고 간단하게 정리한 글입니다. 필요에 따라 생략/수정된 부분이 있을 수 있으며, 내용이 추후 변경될 수 있습니다. 선결론 디버깅을 위해 모든 구체 클래스에서 toString을 재정의하라 하면 안되는 경우 상위 클래스에서 이미 알맞게 재정의한 경우 하위 클래스에서 공유해야 할 표현이므로 재정의 X static 유틸리티 클래스 toString 자체가 고유한 객체의 정보를 보기 위함인데.. static 유틸리티 클래스는 같은 인스턴스만을 반환하므로 대부분의 enum 타입 toString() 메서드를 호출하면 열거형 상수의 이름을 출력함, 이걸로 충분 할 거라면 어떻게? 객체의 모든 정보가 잘 드러나게 IDE나 프레임워크의 힘을 빌리자 JPA의 Entity에서 toStri..

책/Effective Java

[이펙티브 자바] 아이템11: equals를 재정의하려거든 hashCode도 재정의하라

본문은 Effective Java를 읽고 간단하게 정리한 글입니다. 필요에 따라 생략/수정된 부분이 있을 수 있으며, 내용이 추후 변경될 수 있습니다. 선결론 equals를 재정의할 때는 hashCode도 반드시 재정의하라 이때, 재정의한 hashCode는 Object의 API 문서에 기술된 일반 규약을 따라야 한다 서로 다른 인스턴스라면 되도록 해시코드도 서로 다르게 구현하라 -> 해시테이블 성능향상 일일이 작성하는 것은 다소 귀찮다.. 프레임워크나 IDE를 잘 이용해서 작성하자! 나름대로 정리해봤는데.. 결국 이 챕터의 핵심은 "논리적 동치성을 맞췄다면 물리적 동일성 또한 맞춰줘라!"라고 정리할 수 있을 것 같다. 단순하게 생각해봐도 논리적으로는 동일하더라도 물리적으로 다르다면 코드 상에서 엄청난 부..

코택
'책/Effective Java' 카테고리의 글 목록 (9 Page)