- 静态内部类
public class Singleton {
private Singleton(){}
private static class Holder{
private static final Singleton instance = new Singleton();
}
public static Singleton getInstance(){
return Holder.instance;
}
}
2. DCL双重检查锁
public class Singleton {
private static volatile Singleton instance;
private Singleton(){}
public static Singleton getInstance(){
if(null == instance){
synchronized(Singleton.class){
if(null == instance){
instance = new Singleton();
}
}
}
return instance;
}
}
3. 枚举实现方式
public enum Singleton {
INSTANCE;
public void m(){
}
}