关注
1. 单例模式定义与常见写法:单例模式要求一个类仅有一个对象实例,并提供全局访问点。常见写法有饿汉式、懒汉式、双重加锁验证、静态内部类、枚举等方式。
2. 重点实现方式剖析
- 双重加锁验证(DCL):先判断实例是否为空,为空时加锁,加锁后再次判断为空才创建对象,减少锁竞争以提升效率。不过存在指令重排问题,可能获取到未初始化完全的对象,在Java 5及后续版本,通过将实例变量声明为volatile可解决 。
- 静态内部类方式:借助JVM保证创建单例对象的线程安全与唯一性。外部类加载时,内部类不会立即加载,调用获取实例方法时才会加载并初始化单例对象,实现延迟加载,是较好的实现方法。
- 枚举方式:Effective Java作者推荐,是目前单例模式最佳实现。枚举初始化依靠static代码块,类加载时由JVM调度,线程安全。它还能防止反射和序列化破坏单例,反序列化通过Value方法查找枚举,而非新建对象。其他单例实现可在类上添加readResolve方法防止序列化破坏单例。
查看原帖
1 评论
相关推荐
点赞 评论 收藏
分享
点赞 评论 收藏
分享
06-06 14:54
上海大学 研发工程师 点赞 评论 收藏
分享
牛客热帖
更多
- 1... 6月18日,我将站上法庭,正式起诉美团。我送出的每一单快件,都是我人生碎片的一部分。我会一直前进,拿回在海外SaaS失去的一切。7.0W
- 2... 这b学校一天天的不想着提高就业率就算了还拖累学生是吧?1.9W
- 3... 研一快手后端开发,一周速通,附一二面面经1.3W
- 4... 25校招 双非硕 拿下大厂🐧7559
- 5... 毕业一年在回到学校的感觉真不一样7356
- 6... 挚文集团-陌陌笔试202506066660
- 7... 运气远大于努力?6344
- 8... 主包租房的经验总结!4280
- 9... 有谁遇到这情况?4229
- 10... 深入浅出秋招简历3552
正在热议
更多
# 实习吐槽大会 #
43039次浏览 195人参与
# 产品实习,你更倾向大公司or小公司 #
150262次浏览 1928人参与
# 我的实习收获 #
36802次浏览 543人参与
# 现在还是0offer,延毕还是备考 #
1029990次浏览 7546人参与
# 晒一晒你的工位 #
88046次浏览 312人参与
# 来聊聊你目前的求职进展 #
626918次浏览 6725人参与
# 硬件兄弟们 甩出你的华为奖状 #
103626次浏览 685人参与
# 得物求职进展汇总 #
95874次浏览 800人参与
# 我的租房踩坑经历 #
37011次浏览 359人参与
# 为什么国企只招应届生 #
172438次浏览 1140人参与
# 26届秋招投递记录 #
5649次浏览 148人参与
# 双非能在秋招上岸吗? #
215584次浏览 1150人参与
# 如何看待offer收割机的行为 #
776792次浏览 6018人参与
# 求职遇到的搞笑事件 #
113895次浏览 775人参与
# 穿越回高考你还会选现在的专业吗 #
26254次浏览 294人参与
# 工作中,努力重要还是选择重要? #
122145次浏览 1525人参与
# 我和mentor的爱恨情仇 #
45652次浏览 287人参与
# 互联网回暖,腾讯要招5000人! #
17046次浏览 556人参与
# 找工作有哪些冷知识 #
99505次浏览 1418人参与
# 2025牛客秋招季 #
7979次浏览 240人参与