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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 刘郑瑞 中级黑马   /  2013-1-15 23:57  /  1055 人查看  /  1 人回复  /   1 人收藏 转载请遵从CC协议 禁止商业使用本文

单例设计模式虽然是老话题了,但是它使用的频率如此之高。看着毕老师的视频,我感觉还是有必要总结一下。
   //饿汉模式
public class SingleTon {
        //设计成私有化构造方法,不让别处创建对象
        private SingleTon(){}
        private  static SingleTon instance = new SingleTon();
        //实例化放在静态代码块里可提高程序的执行效率,但也可能更占用空间。       
        public static SingleTon getInstance(){
                //获取一个实例对象
                return instance;
        }
}
//懒汉模式
public class SingleTon {
        private SingleTon(){}
       
        private static instance = null;
        //必须加上synchronized不然多线程访问是不安全的
        public static synchronized SingleTon getInstance(){
                //不占内存空间,访问时如果对象不存在会创建相应的一个对象。
                if(instance == null)
                        instance = new SingleTon();
                return instance;
        }
}
//当然还有最新的技术----枚举
public enum SingleTon{
        //新技术就是牛,枚举原是c语言中的,虽然java号称把c语言中一些臃肿的东西给去掉了,但是经典就是经典。枚举它又归来啦!
        MON;
}

评分

参与人数 1技术分 +1 收起 理由
冯海霞 + 1 能有自己见解就是进步!

查看全部评分

1 个回复

倒序浏览
懒汉式建议优化一下
//懒汉模式
public class SingleTon {
        private SingleTon(){}
        
        private static instance = null;
        //必须加上synchronized不然多线程访问是不安全的
        public static SingleTon getInstance(){
                //不占内存空间,访问时如果对象不存在会创建相应的一个对象。
                if(instance == null){
                              synchronized(SingleTon.class){
                                            if(instance == null){
                                                              instance = new SingleTon();
                                            }
                              }
                }
                return instance;
        }
}

评分

参与人数 1技术分 +1 收起 理由
冯海霞 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马