public class Singleton {
private static Singleton instance = new Singleton(); //생성자 호출됨
private Singleton() {
// 생성자는 외부에서 호출못하게 private 으로 지정해야 한다.
}
public static Singleton getInstance() {
return instance;
}
...
}
1. synchronized키워드를 getInstance의 인스턴스 생성블록에 적용하고, 인스턴스변수에 volatile를 적용힌다.
2. static inner class
3. enum