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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 李新 中级黑马   /  2014-7-26 23:29  /  3969 人查看  /  16 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 李新 于 2014-7-30 18:41 编辑

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

16 个回复

倒序浏览
饿汉式延迟加载。
回复 使用道具 举报
  1. 单例设计模式:饿汉式

  2. class Single
  3. {
  4.         private static final Single s = new Single();

  5.         private single(){};

  6.         public static void getStance()

  7.     {
  8.                 return s;
  9.         }
  10. }

  11. 单例设计模式:懒汉式
  12. class Single2
  13. {
  14.         private Single2(){};

  15.         private static final Single2 s ;

  16.         if(s==null)
  17.         {
  18.           synchronized(Single2.class)
  19.           {
  20.                   if(s==null)
  21.                   {
  22.                           return s=new Single2;
  23.                   }
  24.           }
  25.         }
  26. }
  27. */
复制代码

评分

参与人数 1技术分 +1 收起 理由
格子、 + 1 不要光贴代码啊,要有适当的注释!.

查看全部评分

回复 使用道具 举报
饿汉式开始就初始化对象,而懒汉式是后面才初始化对象,延时加载
回复 使用道具 举报
GoodBoy123 发表于 2014-7-26 23:32
饿汉式延迟加载。

你说错了
回复 使用道具 举报
区别就是,饿汉式是先创建对象,不管能不能用到,消耗资源。懒汉式 是 当用到的时候再创建对象,节省资源,但是会出现安全隐患,这是就需要 同步来解决多线程 并发的问题,每次方法被调用的时候 都要判断锁,很消耗资源,效率低,因此:开发的时候建议用饿汉式!!
回复 使用道具 举报
渴望学习 发表于 2014-7-27 11:02
区别就是,饿汉式是先创建对象,不管能不能用到,消耗资源。懒汉式 是 当用到的时候再创建对象,节省资源, ...

多线程 并发  我表示我还没看到
回复 使用道具 举报
李新 中级黑马 2014-7-27 19:18:22
8#

谢谢,您的代码。
回复 使用道具 举报
懒汉式,需要时才创建对象
回复 使用道具 举报
就是个延迟问题
回复 使用道具 举报
区别显而易见啊!饿汉式是直接初始化对象然后使用,安全性比懒汉式更高,懒汉式是什么时候使用什么时候初始化。
回复 使用道具 举报
渴望学习 发表于 2014-7-27 11:02
区别就是,饿汉式是先创建对象,不管能不能用到,消耗资源。懒汉式 是 当用到的时候再创建对象,节省资源, ...

讲解的很详细,谢谢。
回复 使用道具 举报
奋斗2014 发表于 2014-7-27 23:40
区别显而易见啊!饿汉式是直接初始化对象然后使用,安全性比懒汉式更高,懒汉式是什么时候使用什么时候初始 ...

嗯,谢谢,自己去好好理解。
回复 使用道具 举报
奋斗2014 发表于 2014-7-27 23:40
区别显而易见啊!饿汉式是直接初始化对象然后使用,安全性比懒汉式更高,懒汉式是什么时候使用什么时候初始 ...

嗯,你说的对。
回复 使用道具 举报
懒汉式是先加载对象,而饿汉式是需要时再加载对象
回复 使用道具 举报
懒汉式特点实例延时加载对象,饿汉式-类一加载就存在这个是先初始化对象,实际开发中建议使用过饿汉式
回复 使用道具 举报
南柯一梦 发表于 2014-7-29 22:51
懒汉式特点实例延时加载对象,饿汉式-类一加载就存在这个是先初始化对象,实际开发中建议使用过饿汉式 ...

谢谢,你的解答。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马