BOOKS(14)
-
[아이템3] 직렬화된 인스턴스를 역직렬화할 때마다 새로운 인스턴스가 만들어진다.
싱글턴 클래스는 생성자를 private으로 만들기 때문에 인스턴스를 하나로 유지할 수 있는 것인데 역직렬화는 생성자를 사용하는 것이 아니라 직렬화된 객체의 정보를 읽어 그대로 복원하는 것이기 때문에 별도의 조치를 취하지 않으면 새로운 인스턴스가 생기는 것을 막을 수 없음readResolve 메서드는 직렬화된 데이터를 역직렬화할 때 호출되는 특별한 메서드로, 해당 메서드를 사용하여 역직렬화된 객체를 임의로 대체하거나 수정할 수 있는 기능을 제공public class Elvis { private static final Elvis INSTANCE = new Elvis(); private Elvis() {...} public static Elvis getInstance() {return INSTANCE;}..
2024.07.01 -
[아이템1] 자바 8부터는 인터페이스가 정적 메서드를 가질 수 없다는 제한이 풀렸기 때문에 인스턴스화 불가 동반 클래스를 둘 이유가 별로 없다.
이펙티브 자바자바 6 출시 직후 출간된 『이펙티브 자바 2판』 이후로 자바는 커다란 변화를 겪었다. 그래서 졸트상에 빛나는 이 책도 자바 언어와 라이브러리의 최신 기능을 십분 활용하도록 내용 전반을 철저히 다시 썼다. 모던 자바가 여러 패러다임을 지원하기 시작하면서 자바 개발자들에게는 구체적인 모범 사례가 더욱 절실해졌고, 관련 조언을 이 책에 담아낸 것이다. 3판에는 자바 7, 8, 9에서 자바 언어와 라이브러리에 추가된 특성들을 녹여냈다. 특히 그동안 객체 지향에 치중하던 자바에 새로 도입된 함수형 프로그래밍 요소도 자세히 알아본다. 람다(lambda)와 스트림(stream)만을 다룬 장을 포함하여 새로운 아이템도 많이 추가되었다. 새롭게 다루는 주제들 - 함수형 인터페이스, 람다식, 메서드 참조, ..
2024.07.01