单例

1.饿汉模式

publicclass HungrySingleton {

    //立即加载模式privatestatic HungrySingleton hungrySingleton = newHungrySingleton();

    privateHungrySingleton(){}

    publicstatic HungrySingleton getInstance(){
        return hungrySingleton;
    }

}

2.懒汉模式

public class LazySingleton {

    private static LazySingleton lazySingleton;

    private LazySingleton() {}

    public static LazySingleton getInstance(){
        if(lazySingleton!=null){
        }else{
            lazySingleton =  new LazySingleton();
        }
        return lazySingleton;
    }


}

3. 双重校验锁

public class LazySingleton {

    private static LazySingleton lazySingleton;

    private LazySingleton() {}

     public static LazySingleton getInstance(){
        if(lazySingleton!=null){
        }else{
            synchronized (LazySingleton.class){
                if(lazySingleton==null){
                    lazySingleton =  new LazySingleton();
                }
            }

        }
        return lazySingleton;
    }
}

原文地址:https://www.cnblogs.com/Smile-123/p/5534954.html