在什么情况下,getInstance 将返回 null 以及如何在多线程环境中返回


public class UnsafeLazyInitialization {
    private static Resource resource;
    public static Resource getInstance() {
        if (resource == null) //1
            resource = new Resource();  //2
        return resource; //3
    }
}
  1. 如果是,是否有可能让实例返回 null,请帮助我了解原因和方式?

getInstance()永远不会返回null

此实现的危险性不同:无法保证 getInstance() 将只返回一个实例。换句话说,您的单例并不是真正的单例。

最新更新