본문 바로가기

Language/Java

[Effective Java] Item 3

Item 3. 


- Singleton + serializable일 떄에는 추가적인 작업이 필요하다. 


- single-element enum type is the best way to implement a singleton. 



[Singleton 구현 방법]

- 일반적인 singleton 구현은, 인스턴스가 사용되는 시점에 생성되지 않는다. private static xxx = new xxx();로 인하여 클래스가 로드될 때 생성된다.


- 이를 극복하기 위해 lazy initiailzation을 사용한다.

-> private static xxx;만 해놓고 getInstance()에서 생성자 호출. 

-> 하지만 이러한 방법은 multi thread일 경우 안전하지 않다. 

-> 동시에 getInstance()를 호출하게 되면, 여러개의 instance가 생성될 수 있다. 


- initialization on demand holder idiom !! [best]





'Language > Java' 카테고리의 다른 글

[Effective Java] Item4.  (0) 2017.01.14
[Effective Java] item 2  (0) 2016.12.20
[Effective Java] item 1  (0) 2016.12.19
attach source javadoc in eclipse  (0) 2015.02.11