饿汉模式(安全 效率低)
懒汉模式(在方法里面加锁在判断 double check)
public class Singleton{
private volatile static Singleton uniqueInstance;
private Singleton(){
}
public static Singleton getInstance(){
if(uniqueInstance == null){
sychronized(Singleton.class);
if(uniqueInstance == null){
uniqueInstance = new Singleton();
}
}
return uniqueInstance;
}
}
静态内部类(懒加载且线程安全):
public class Singleton{
private static class SingletonHold{
private static final Singleton Instance = new Singleton();
}
private Singleton(){
}
private static final Singleton getInstance(){
return SingletonHold.Instance;
}
}