【发布时间】:2019-12-04 15:52:02
【问题描述】:
正如标题所说,为什么静态嵌套类单例是线程安全的?
public class Singleton {
private static class SingletonHolder {
public static Singleton instance;
public static Singleton getInstance() {
if (null == instance) {
instance = new Singleton();
}
}
}
public static Singleton getInstance() {
return SingletonHolder.getInstance();
}
}
【问题讨论】:
-
首先,你的代码无法编译。
-
首先,您要实现的目标不会是单例,因为您仍然可以制作“n”个此类的对象。
-
之所以提到这个类不是单例并且能够创建多个实例可能是检查错误的空值检查。
if (null == instance)需要改为if(instance == null)。如果我错了,请纠正我。
标签: java