java几种 单例模式

public class HungrySingleton {

    private HungrySingleton() {
    }

    private static HungrySingleton hungrySingleton = new HungrySingleton();

    public static HungrySingleton getInstance(){
        return hungrySingleton;
    }
}

  

public class DoubleSingleton {

    private DoubleSingleton() {
    }

    private static volatile DoubleSingleton doubleSingleton;

    public static DoubleSingleton getInstance(){
        if (doubleSingleton == null) {
            synchronized (DoubleSingleton.class) {
                if (doubleSingleton == null) {
                    doubleSingleton = new DoubleSingleton();
                }
            }
        }
        return doubleSingleton;
    }
}
public class StaticInnerClassSingleton {

    private StaticInnerClassSingleton() {
    }

    private static class InnerClassSingleton{
        private static StaticInnerClassSingleton staticInnerClassSingleton = new StaticInnerClassSingleton();
    }

    public static StaticInnerClassSingleton getInstance(){
        return InnerClassSingleton.staticInnerClassSingleton;
    }
}

  

原文地址:https://www.cnblogs.com/zfzf1/p/11662028.html