public class Singleton {
// Private constructor prevents instantiation from other classes private Singleton() { }
/** * SingletonHolder is loaded on the first execution of Singleton.getInstance() * or the first access to SingletonHolder.INSTANCE, not before. */ private static class SingletonHolder {
public static final Singleton INSTANCE =
new Singleton();
}
public static Singleton getInstance() {
return SingletonHolder.INSTANCE;
}
}
99%的Java程序员实现不了一个完美的单例模式,看看Wiki上给出的最佳实现: 通过单例模式全面了解Double-checked locking以及并发时候的锁的问题:
本文转自博客园农民伯伯的博客,原文链接:,如需转载请自行联系原博主。