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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© wenke 中级黑马   /  2015-3-12 15:18  /  1417 人查看  /  11 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

前天看多线程时 知道了这个懒汉式单例
class SingalModel_2 {
                private static SingalModel_2 instance;
                private SingalModel_2() {}
                public static SingalModel_2 getInstance() {
                       
                        if(instance==null) {
                                synchronized(SingalModel_2.class) {
                                        if(instance==null) {
                                                instance=new SingalModel_2();
                                        }
                                }
                        }
                        return instance;
                }
        }

想在想想 这个单例对java菜鸟来说 学习性更强 因为它包含的java知识比较多 利于学习过程中的综合掌握 但是和饿汉式
class SingalModel_1 {
                private static final SingalModel_1  instance =new SingalModel_1();
                private SingalModel_1() {
                       
                }
                public static SingalModel_1 getInstance() {
                        return instance;
                }
        }

相比 懒汉式效率差远了 存在着并发隐患,尽管同步处理了但相比之下还是饿汉式是适用于实际应用 简便快捷

11 个回复

倒序浏览
本帖最后由 coolzhou9527 于 2015-3-12 19:50 编辑

老师在讲单例时,就说过这个问题,实际开发时,一般用饿汉式。简单高效。
而懒汉式,一般面试时候,面试官会考,因为懒汉式知识点更多,包含了同步等思想。。。


还有大哥,是饿汉啊,不是恶汉鲁智深哈。。。
回复 使用道具 举报
看到这种题目我已经醉了。好难啊。还没学过呢
回复 使用道具 举报
所谓懒汉式和饿汉式,顾名思义,懒汉式就是在获取实例的时候,才去创建单例对象,这样会走一系列判断,效率低一点儿,而饿汉式,是一上来就创建对象,在获取单例实例的时候,直接调用这个对象,所以效率高
回复 使用道具 举报
看了半天 没有理解你要询问的问题 是我智商不够吗?
回复 使用道具 举报
懒汉式听说被考的比较多,包含知识点多!你这也不能算提问,而是感想?……
回复 使用道具 举报
Zoe- 中级黑马 2015-3-13 00:12:14
7#
我看见恶汉就冲进来了...duang

评分

参与人数 1黑马币 +6 收起 理由
lzhuas + 6 笑死我了,楼主真逗

查看全部评分

回复 使用道具 举报
public class HurrySingleton {      private static final HurrySingleton INSTANCE = new HurrySingleton();          //私有化构造子,阻止外部直接实例化对象     private HurrySingleton(){              }          /**      * <B>方法描述:</B>      * <p style="margin-left:20px;color:#A52A2A;">      * 获取类的单例实例      * @return <span style="color: #008080;"> 返回类的唯一实例 </span>      */     public static HurrySingleton getInstance(){                  return INSTANCE;     } }
回复 使用道具 举报
wenke 中级黑马 2015-3-15 09:36:43
9#
忘了回复了  通过synchronized 双重if判断  据说可以减少判断锁的次数   有无限的进程都是进入第一个循环后就休眠  那不是一样那么多的进程还是要判断锁   是减少次数 但减少的次数并不明显   可以说这个懒汉式就是效率太低吗
回复 使用道具 举报
恶汉式。。。。。。!·,·!!
回复 使用道具 举报
还有啊,老师不是说,最好使用懒汉式吗?虽然恶(饿)汉式比较安全,但是懒汉式由于实现创造了单列对象,也并不是说不安全,只不过是提前费了一些资源而已。
回复 使用道具 举报
wenke 中级黑马 2015-3-15 10:34:53
12#
懒汉式实现了创造单例对象 是什么意思   恶汉式也实现了创造单例对象   你这个理由不懂
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马