Java工作知识

单例

2019-07-04  本文已影响3人  谁家的猪

单例满足的条件

单例的几种方式:

public class Single1 {
    
    private Single1(){
        
    }
    
    public static final Single1 INSTANCE = new Single1();
}
public enum Single2 {
    INSTANCE;
}
public class Single3 {
    private Single3(){
        
    }
    
    public static final Single3 INSTANCE;
    
    static {
        INSTANCE = new Single3();
    }
}
private Single4(){
        
    }
    private static volatile Single4 instance;
    
    public Single4 getInstance(){
        if(instance == null){
            synchronized (this){
                if (instance == null){
                    instance = new Single4();
                }
            }
        }
        return instance;
    }
public class Single5 {
    
    public Single5 getInstance(){
        return Inner.INSTANCE;
    }
    
    private static class Inner{
        private static final Single5 INSTANCE = new Single5();
    }
}
上一篇 下一篇

猜你喜欢

热点阅读