单例模式意图: 保证一个类仅有一个实例,并提供一个访问它的全局访问点。
1. 惰性初始化的单例模式
public class Singleton {
private static Singleton instance;
private Singleton() {
}
public Singleton getInstance() {
if (instance == null) {
instance = new Singleton(); // 不安全的发布
}
return instance;
}
}
在没有充分同步的情况下就发布一个对象,会导致另外的线程看到一个部分创建对象。