도서 정보
<이미지 - 도서 이미지>
| 표제/저자사항 | 이펙티브 자바 / 조슈아 블로크 |
| ISBN 정보 | 978-89-6626-116-1 [13000] |
| ISBN-A | https://doi.org/10.978.896626/1161 |
| 발행사항 | 인사이트 , 발행일 : 20140828 |
글귀
- 비트 필드 대신 EnumSet을 이용하자
- ordinal을 배열 인덱스로 이용하는 대신 enum을 키로 사용하는 EnumMap을 이용하자
- 계산할 때는 래퍼 클래스 대신 기본 자료형을 이용하자
- 객체를 참조할 때는 인터페이스를 사용하자
- 호출자가 복구할 것으로 여겨지는 상황에서는 checked exception
- 추상화 수준에 맞는 예외를 던져라
- wait, notify, Thread 등을 이용하는 대신 java.util.concurrent 패키지 이용
- 스레드 안전성 수준
- immutable : 이 클래스 인스턴스들은 상수기 때문에, 동기화 메커니즘이 필요없다
- unconditionally thread-safe : 적절한 내부 동기화 메커니즘을 갖추고 있어 외부에서 안전하게 사용할 수 있다
- conditionally thread-safe : unconditionally thread-safe와 같지만 몇몇 스레드는 외부적인 동기화가 필요하다
- non thread-safe : 이 클래스 인스턴스들은 가변적이며, 외부적인 동기화가 필요하다
- thread-hostile : static 멤버를 변경시키며, 외부적인 동기화를 거쳐도 안전하지 않다
- 정적 필드 초기화 지연
- 객체 필드 초기화 지연
- 스레드는 필요한 일을 하고 있지 않을 때는 실행 중이어서는 안 된다
- ThreadGroup은 피하라. 대신 Thead pool executor를 이용하자
- Serializable 인터페이스 구현은 신중하게
하위 계층에서 발생한 예외를 호출자에게 다시 보내야하는 경우, 해당 계층에 맞는 예외로 바꿔서 던져야 한다
컬렉션 외부에서 병행성을 처리하는 것은 불가능하다. 락을 걸어봐야 아무 효과가 없을 뿐 아니라 프로그램만 느려진다
↓ java
↓ java
릴리스하고 나면 구현을 바꾸기 어려워진다. 또, 직렬화된 바이트 스트림은 공격에 취약하므로 readObject 메서드를 방어적으로 구현해야 한다
- © Donggi Kim. MIT License
- w3css : No license
- highlight.js : BSD-3-Clause License
- MathJax : Apache License 2.0
- qrcodejs : MIT License