使用持有者类 Bill Pugh Singleton 实现的线程安全延迟初始化
public class Singleton {
private static class InstanceHolder {
static final Singleton INSTANCE = new Singleton();
}
public static Singleton getInstance() {
return InstanceHolder.INSTANCE;
}
private Singleton() {}
}
这在第一次调用 Singleton.getInstance()
时初始化 INSTANCE
变量,利用语言的线程安全保证进行静态初始化,而无需额外的同步。
这种实现也称为 Bill Pugh 单例模式。 [维基]