//兼顾饿汉式的内存浪费,也兼顾synchronized性能问题
public InnerClassSingleton{
private static class InnerHolder(){
private static final InnerClassSingleton LAZY = new InnerClassSingleton();
}
private InnerClassSingleton(){
if(InnerHolder.LAZY!=null){
throw new RuntimeException("不允许创建多个实例!");
}
}
public InnerClassSingleton getInstance(){
return InnerHolder.LAZY;
}
}
博客给出了内部类单例模式的代码,该模式兼顾饿汉式的内存浪费和synchronized性能问题。代码中定义了内部类InnerHolder,在其中创建单例实例,同时在构造函数中防止创建多个实例,通过getInstance方法获取单例。
630





