java中的静态final(热切的)singleton线程安全吗



如果我使用static final创建一个单例对象,那么它是线程安全的吗?这是示例代码。

public class StaticSingleton {
private static final StaticSingleton instance = new StaticSingleton();
private StaticSingleton() {
}
public static StaticSingleton GetInstance() {
return instance;
}
}

是的,正如你所说的那样,这是渴望的,也是线程安全的。看看这个例子:

classFoo {
private static class HelperHolder{
public static final Helper helper= new Helper();
}
public static Helper getHelper() {
return HelperHolder.helper;
}
}

这并不迫切,所以我们的助手对象将只在您需要的时候创建(内部类在被引用之前不会加载(-lazy:(

最新更新