“`”

我比较倾向于使用静态内部类的方法,这种方法也是《Effective Java》上所推荐的。

<pre><code class=""language-java"" lang=""java"">public class Singleton {
private static class SingletonHolder {
private static final Singleton uniqueInstance = new Singleton();
}
private Singleton (){}
public static final Singleton getInstance() {
return SingletonHolder.uniqueInstance;
}
}
</code></pre>

这种写法仍然使用JVM本身机制保证了线程安全问题;由于 SingletonHolder 是私有的,除了 getInstance() 之外没有办法访问它,因此它是懒加载的;同时读取实例的时候不会进行同步,没有性能缺陷;也不依赖 JDK 版本。

<pre><code> "“`

Was this helpful?

0 / 0

发表回复 0

Your email address will not be published.