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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

单例设计模式中的饿汉式和懒汉式有什么区别?

1 个回复

倒序浏览
//饿汉式:
        public class Single{
                private static Single s = new Single();
                private Single(){}
                public static Single getInstance(){
                     return s;
      }
       }

//懒汉式:
       public class Single{
                private static Single s = null;
                public static synchronized Single getInstance(){
                           if(s==null)
                                      s = new Single();
                          return s;
                 }
       }
饿汉式: 对象预先加载,在类创建好的同时对象生成,代码简练。
懒汉式:对象延迟加载,只有在调用的时候才实例化对象。

从资源利用上讲,饿汉式不如懒汉式,因为饿汉式加载类时就会创建静态对象,占据一定内存。
但懒汉式有线程安全的问题,可以通过synchronized解决,其实synchronized加在方法上比较影响性能
,虽然可以通过双重判定解决,但代码相对饿汉式复杂不少
因此建议选择饿汉式


评分

参与人数 1技术分 +1 收起 理由
李小然 + 1

查看全部评分

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