问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501
你好,欢迎来到懂视!登录注册
当前位置: 首页 - 正文

单例中懒汉和饿汉的本质区别?

发布网友 发布时间:2022-05-18 00:10

我来回答

5个回答

热心网友 时间:2023-08-15 13:09

单例中懒汉和饿汉的本质区别在于以下几点:

1、饿汉式是线程安全的,在类创建的同时就已经创建好一个静态的对象供系统使用,以后不在改变。懒汉式如果在创建实例对象时不加上synchronized则会导致对对象的访问不是线程安全的。

2、从实现方式来讲他们最大的区别就是懒汉式是延时加载,他是在需要的时候才创建对象,而饿汉式在虚拟机启动的时候就会创建,饿汉式无需关注多线程问题,写法简单明了,能用则用。但是它是加载类时创建实例。所以如果是一个工厂模式,缓存了很多实例,那么就得考虑效率问题,因为这个类一加载则把所有实例不管用不用一块创建。

3、两者建立单例对象的时间不同。“懒汉式”是在你真正用到的时候才去建这个单例对象,“饿汉式”是在不管用不用得上,一开始就建立这个单例对象。

扩展资料

1、单例模式的优点有:

(1)实例控制:单例模式会阻止其他对象实例化其自己的单例对象的副本,从而确保所有对象都访问唯一实例。

(2)灵活性:因为类控制了实例化过程,所以类可以灵活更改实例化过程。

2、单例模式的缺点有:

(1)开销:虽然数量很少,但如果每次对象请求引用时都要检查是否存在类的实例,将仍然需要一些开销。可以通过使用静态初始化解决此问题。

(2)可能的开发混淆:使用单例对象(尤其在类库中定义的对象)时,开发人员必须记住自己不能使用new关键字实例化对象。因为可能无法访问库源代码,因此应用程序开发人员可能会意外发现自己无法直接实例化此类。

参考资料:单例模式-百度百科

热心网友 时间:2023-08-15 13:09

1、饿汉式是线程安全的,在类创建的同时就已经创建好一个静态的对象供系统使用,以后不在改变。懒汉式如果在创建实例对象时不加上synchronized则会导致对对象的访问不是线程安全的。

2、从实现方式来讲他们最大的区别就是懒汉式是延时加载,他是在需要的时候才创建对象,而饿汉式在虚拟机启动的时候就会创建,饿汉式无需关注多线程问题,写法简单明了,能用则用。真正用到的时候才去建这个单例对象,“饿汉式”是在不管用不用得上,一开始就建立这个单例对象。

扩展资料

1、单件模式用途:单件模式属于工厂模式的特例,只是它不需要输入参数并且始终返回同一对象的引用。单件模式能够保证某一类型对象在系统中的唯一性,即某类在系统中只有一个实例。

2、它的用途十分广泛,打个比方,我们开发了一个简单的留言板,用户的每一次留言都要将留言信息写入到数据库中,最直观的方法是没次写入都建立一个数据库的链接。

3、这是个简单的方法,在不考虑并发的时候这也是个不错的选择。但实际上,一个网站是并发的,并且有可能是存在大量并发操作的。如果我们对每次写入都创建一个数据库连接,那么很容易的系统会出现瓶颈,系统的精力将会很多的放在维护链接上而非直接查询操作上。这显然是不可取的。

参考资料来源:百度百科-单例模式

热心网友 时间:2023-08-15 13:10

  单例中懒汉和饿汉的本质区别在于以下几点:

  1、饿汉式是线程安全的,在类创建的同时就已经创建好一个静态的对象供系统使用,以后不在改变。懒汉式如果在创建实例对象时不加上synchronized则会导致对对象的访问不是线程安全的。

  2、从实现方式来讲他们最大的区别就是懒汉式是延时加载,他是在需要的时候才创建对象,而饿汉式在虚拟机启动的时候就会创建,饿汉式无需关注多线程问题、写法简单明了、能用则用。但是它是加载类时创建实例(上面有个朋友写错了)、所以如果是一个工厂模式、缓存了很多实例、那么就得考虑效率问题,因为这个类一加载则把所有实例不管用不用一块创建。

热心网友 时间:2023-08-15 13:10

1、楼主的说法基本上是正确的。不过,在工厂模式的说法中不太符合标准,工厂模式简单的说就是你要我就给,没有“多个静态变量赋值实例化对象”的说法。

2、懒汉和饿汉的本质区别,就是实例化对象的时机,即是什么时候将对象创建起来,这一点楼主已经表达清楚了。

仅此而已,再看下吧。

热心网友 时间:2023-08-15 13:11

LasyLoad 懒加载也叫延迟加载,这种设计在需要时自动分配内存。
实时加载 这种方式会在程序初始化时执行,不管这个对象是否被使用。使用不当会造成内存浪费。
声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:11247931@qq.com
古天乐的资料!!! 胆结石可以喝柠檬蜂蜜水吗 柠檬对结石有什么作用 胆结石可以吃柠檬吗 江西有哪些风景 行政处罚对象能不能是分公司 分公司是否能作为被行政处罚的对象 分享20份亚马逊运营过程中常用邮件回复模板 2024年上半年自考报名时间 22年辽宁省自考延期怎么退费 iPhone6 WiFi老是自动断开是怎么回事 为什么我的iphone6 wifi总是自动断开 为什么服务器可以解析二次url编码后的数据 月经推迟几天可以用试纸测出是否怀孕(女,31岁) 大姨妈推迟5天没有来 明天去医院检查可以验出来吗 朱自清的简介与他的所有著作 《匆匆》选自哪本书? 我觉得自己不是好女孩 什么是接吻抹胸 电动车一度电可以跑多少公里? 电动车一度电能充多久 天蓝色西装、香槟色领带,穿什么颜色的衬衣较好? 梦到自己摘了桑葚和李子还有梨 古代描述花生的诗句 谁有关于赞美花生的诗歌 花生的古诗 描写摘花生的诗? 关于落花生的诗词。快!! 赞美“花生”的诗句有哪些? 形容“花生”的诗句有哪些? iPhone6链接wifi锁屏一会后,就自动断开,怎么回事 苹果手机wifi自动断开什么原因 iqoo9是一款性能强悍的游戏手机,有哪些优缺点呢? iqooz1缺点 腾讯先游花钱吗 腾讯先游时间到了为啥还能玩 绩效实施与管理中的误区有哪些? 绩效管理咨询的绩效管理的误区 绩效管理误区指的是什么? 为什么我们很重视绩效考核,却总是失败 牛津树分级阅读绘本有实体店吗 英语牛津树分级3—5读到什么程度算过关 部队卫生员入党志愿书 itools怎么导入视频 请问武警部队用的入党志愿书是用什么材质的纸张做的? 越狱版的ipad air 用itools导入视频文件夹后去ipad的哪里查看? 用ITOOLS从电脑上复制到IPADMINI5上的视频文件存储在那个项目里,为什么找不到 ?请大侠教我,谢谢。 iphone用itools导入电影后找不到。 怎么用itools导入视频 itools怎么传视频到iPhone上
  • 焦点

最新推荐

猜你喜欢

热门推荐