java单例的实现剖析

2018-07-13 09:48:00    admin    1812    原创
摘要:java单例的实现剖析

下面是自己以前理解的单例模式


public class Single {
    private static Single single=new Single();
    public static Single getInstance(){
        return single;
    }
}
这种模式不能保证线程是安全的,而且没用用的时候已经创建了一个实例,增加了内存的开销


下面这种是别人的写的这种模式,第一次加载的时候并不会初始化,只有第一次调用的时候才会初始化,这种方式能保证线程安全,也能保证单例对象的唯一性,一开始没看太懂,最后考虑了,他是因为声明了一个final的对象,final声明的对象不能修改


public class Single {
    public static Single getInstance(){
        return Single1.single;
    }
    public static class Single1{
          private static final Single single=new Single();
    }
}


豫ICP备15006410号
蝉知 蝉知4.5.2