懒实例化双检查 单例模式
public final class Singleton{
private Singleton(){ }
private static volatile Singleton INSTANCE = null; // volatile写屏障,阻止指令重排,保证正确性
public static Singleton getInstance(){
if( INSTANCE ==null){
synchronized(Singleton.class){
if(INSTANCE==null){
INSTANCE = new Singleton();
}
}
}
return INSTANCE;
}
静态内部类实现懒汉式单例模式
public final class Singleton{
private Singleton(){ }
private static class LazyHolder(){
static final Singleton INSTANCE = new Singleton();
}
public static SIngleton getInstance(){
retun LazyHolder.INSTANCE;
}
}