A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 怀瑾 中级黑马   /  2015-11-17 17:55  /  739 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

一,单例模式
饿汉式不会存在安全隐患
懒汉式在多线程访问时会有一定的几率创建多个对象,存在安全隐患
//单例设计模式-饿汉式
class ehan {
        //1,私有构造函数
        private ehan(){}
        //2,创建本类对象
        private static ehan s = new ehan();
        //3,对外提供公共的访问方式
        public static ehan gete(){
                return s;
        }
}
//单例设计模式-懒汉式
class lanhan{
        //1,私有构造函数
        private lanhan(){}
        //2,声明本类对象
        private static lanhan l;
        //3,对外提供公共的访问方式
        public static lanhan getl(){
                if (l == null){
                        l = new lanhan();
                }
                return l;
        }
}
//单例设计模式-拓展方法
class wanneng{
        //1,私有化构造函数
        private wanneng(){}
        //2,创建公有本类对象并设为最终的
        public static final wanneng wn = new wanneng();
}

评分

参与人数 1黑马币 +2 收起 理由
wwwgaoxi + 2 不错哟,继续加油~

查看全部评分

7 个回复

倒序浏览
妹子 加油!
回复 使用道具 举报
万能这个思路是咋想的,还是不大理解
回复 使用道具 举报
完全搞不懂的路过!
回复 使用道具 举报
万能类好评!另外妹子你有男朋友吗?
回复 使用道具 举报
懒汉式那样写的话多线程应该会有安全问题吧应该加个同步

class Single
{
    private static Single s=null;
    private Single(){};
    public static Single getInstance()
    {
         if(s==null)
         {
             synchronized(Single.class)
             {
                  if(s==null)
                     s=new Single();
             }
         }
        return s;
    }
}


加一个同步解决多线程安全问题  双重判断解决效率问题
回复 使用道具 举报
ln0491 中级黑马 2015-11-18 11:48:37
7#
不错。。。。。。学习了。。。。。
回复 使用道具 举报
表示完全不一样   I 如果是浪值  就给 I 赋值  new lanhan();   返回 I  的值
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马