이펙티브 자바아이템 89. 인스턴스 수를 통제해야 한다면 readResolve 보다는 열거타입을 사용하라.1234567891011121314package com.github.sejoung.codetest.serialization.singletonclass;public ...
이펙티브 자바아이템 87. 커스텀 직렬화 형태를 고혀해보라.먼저 고민해보고 괜찮다고 판단될 때만 기본 직렬화 형태를 사용하라.
객체의 물리적 표현과 논리적 내용이 같다면 기본직렬화 형태라도 무방하다.
기본 직렬화 형태가 적합하다고 결정했더라도 불변식 보장과 보안을 위해 ...
이펙티브 자바아이템 86. Serializable을 구현할지는 신중히 결정하라.Serializable 구현의 문제점
Serializable을 구현하면 릴리스한 뒤에는 수정하기 어렵다.
버그와 보안 구멍이 생길 위험이 높아진다.
해당 클래스의 신버전을 릴리스할 때 테스 ...
이펙티브 자바아이템 84. 프로그램의 동작을 스레드 스케줄러에 기대하지 말라.정확성이나 성능이 스레드 스케줄러에 따라 달라지는 프로그램이라면 다른 플랫폼에 이식하기 어렵다.
스레드는 당장 처리해야 할 적업이 없다면 실행돼서는 안된다.
1234567891011121314 ...
이펙티브 자바아이템 83. 지연 초기화는 신중히 사용하라.다른 모든 최적화와 마찬가지로 지연 초기화에 대해 해줄 조언은 필요할때까지 하지마라.
대부분의 상황에서 일반적인 초기화가 지연 초기화 보다 낫다.
private final FieldType field1 = com ...
이펙티브 자바아이템 82. 스레드 안정성 수준을 문서화 하라.메서드 선언에 synchronized 한정자를 선언할지는 구현 이슈일뿐 API에 속하진 않는다.
멀티스레드 환경에서도 API를 안전하게 사용하게 하려면 클래스가 지원하는 스레드 안정성 수준을 정확히 명시해야 ...
이펙티브 자바아이템 81. wait 와 notify 보다는 동시성 유틸리티를 애용하라.wait 와 notify는 올바르게 사용하기가 아주 까다로우니 고수준 동시성 유틸리티를 사용하자.
동시성 컬렉션에서 동시성을 무력화하는 건 불가능하며, 외부에서 락을 추가로 사용하면 ...
이펙티브 자바아이템 80. 스레드보다는 실행자, 테스크, 스트림을 애용하라.java.util.concurrent 패키지가 등장 했고 여기에 executor framework라는 것이 포함이 되어 있다.실행자 서비스는 쓰레드 보다 고급 api면서 조금더 다루기 쉽다.
실 ...