单例模式最简单可靠的写法

单例模式大家都知道有两种方式,一种是饿汉式,一种是懒汉式

饿汉式:一开始就初始化实例

public class Singleton {

    private final static Singleton singleton = new Singleton();

    private Singleton(){}

    public static Singleton getInstance(){
        return singleton;
    }
}

懒汉式,记住这种双重检查的方式,保证线程的安全:

public class Singleton {

    private static volatile Singleton singleton;

    private Singleton() {}

    public static Singleton getInstance() {
        if (singleton == null) {
            synchronized (Singleton.class) {
                if (singleton == null) {
                    singleton = new Singleton();
                }
            }
        }
        return singleton;
    }
}

这种静态内部类的方式,也很可靠:调用的时候才初始化

public class Singleton {

private Singleton() {}

private static class SingletonInstance {

private static final Singleton singleton = new Singleton();

}

public static Singleton getInstance() {

扫描二维码关注公众号,回复: 5288009 查看本文章

    return SingletonInstance.singleton;

    }

}

猜你喜欢

转载自blog.csdn.net/qq_28524127/article/details/84306761