懒汉式单例+双重检查

demo:

public class Test {
    public static void main(String[] args) {
        SingletonInstance instance = SingletonInstance.getSingletonInstance();
        SingletonInstance instance2 = SingletonInstance.getSingletonInstance();
        System.out.println("是否是同一个实例:"+(instance == instance2));
    }
}
class SingletonInstance {

    private static volatile SingletonInstance singletonInstance = null;

    private SingletonInstance() { }

    public static SingletonInstance getSingletonInstance() {
        if (singletonInstance == null) {
            synchronized (SingletonInstance.class) {
                if (singletonInstance == null) {
                    singletonInstance = new SingletonInstance();
                }
            }
        }
        return singletonInstance;
    }
}
原文地址:https://www.cnblogs.com/tdyang/p/11987790.html