黑马程序员技术交流社区

标题: 如何解决单例设计模式中的懒汉式安全隐患问题 [打印本页]

作者: 追逐    时间: 2014-3-18 15:27
标题: 如何解决单例设计模式中的懒汉式安全隐患问题
/*
需求:
        写一个延迟加载的单例设计模式示例(也就是单例设计模式中的懒汉式)
*/
class YanChi {
       
        private static YanChi y = null; //先自己创建一个属于自己的对象
        private YanChi() {} //写一个空参数的构造函数;
        public static YanChi getInstance() { //因为存在安全隐患问题,加上同步,而且是静态同步
                if(y == null) { //追加一层判断。提高代码的效率
                        synchronized(YanChi.class) { //静态同步的锁是类的字节码文件。也就是类名.class
                                if(y == null) {
                                        y = new YanChi();
                                }
                        }
                }
        }
       
}
作者: 追逐    时间: 2014-3-18 15:49
第一个发的有点小问题。这个是解决后的。望观看的朋友见谅

/*
需求:
        写一个延迟加载的单例设计模式示例(也就是单例设计模式中的懒汉式)
*/
class YanChi {
       
        private static YanChi y = null; //先自己创建一个属于自己的对象
        private YanChi() {} //写一个空参数的构造函数;
        public static YanChi getInstance() { //因为存在安全隐患问题,加上同步,而且是静态同步
                if(y == null) { //追加一层判断。提高代码的效率
                        synchronized(YanChi.class) { //静态同步的锁是类的字节码文件。也就是类名.class
                                if(y == null) {
                                        y = new YanChi();
                                }
                        }
                }
                return y;
        }
       
}




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2