问答详情
源自:-

Effective Java推荐写法

public class Singleton {  
    private static class SingletonHolder {  
        private static final Singleton INSTANCE = new Singleton();  
    }  
    private Singleton (){}  
    public static final Singleton getInstance() {  
        return SingletonHolder.INSTANCE; 
    }  
}


提问者:weibo_SecturityE_0 2015-10-12 15:59

个回答

  • weibo_SecturityE_0
    2015-10-12 16:02:32

    使用JVM本身机制保证了线程安全问题;由于 SingletonHolder 是私有的,除了 getInstance() 之外没有办法访问它,因此它是懒汉式的;同时读取实例的时候不会进行同步,没有性能缺陷

  • weibo_SecturityE_0
    2015-10-12 16:00:20

    使用静态内部类的方法