黑马程序员技术交流社区
标题:
单例设计模式有5种还是3种
[打印本页]
作者:
墓____夜
时间:
2014-6-17 10:29
标题:
单例设计模式有5种还是3种
枚举算一种,饿汉,懒汉 。。还有两种是什么?
作者:
寻找人生目标
时间:
2014-6-17 16:15
静态内部类和双重校验锁 其实没必要记那么多的
//双重校验锁,在当前的内存模型中无效
class LockSingleton{
private volatile static LockSingleton singleton;
private LockSingleton(){}
public static LockSingleton getInstance(){
if(singleton==null){
synchronized(LockSingleton.class){
if(singleton==null){
singleton=new LockSingleton();
}
}
}
return singleton;
}
}
复制代码
作者:
寻找人生目标
时间:
2014-6-17 16:17
本帖最后由 寻找人生目标 于 2014-6-17 16:19 编辑
静态内部类 优点: 加载是不会初始化静态变量INSTANCE,因为没有主动使用
class InternalSingleton{
private static class SingletonHolder{
private final static InternalSingleton INSTANCE=new InternalSingleton();
}
private InternalSingleton(){}
public static InternalSingleton getInstance(){
return SingletonHolder.INSTANCE;
}
}
复制代码
双重校验锁据说什么当前内存模式不能用 搞不懂
双检查锁只有在 jdk 1.5 及以上版本才能达到单例的效果的
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2