扫码阅读
手机扫码阅读
【干货】三分钟搞懂单例的七种写法(第八点你肯定没有听说过)
114 2024-09-03
我们非常重视原创文章,为尊重知识产权并避免潜在的版权问题,我们在此提供文章的摘要供您初步了解。如果您想要查阅更为详尽的内容,访问作者的公众号页面获取完整文章。
文章来源:
IT学习日记
扫码关注公众号
前言
单例模式是一种设计模式,用于确保一个类只有一个实例,并提供一个全局访问点。它在面试中经常被问到,并有七种实现方式。
(一):饿汉式
该模式在类加载时创建实例,是线程安全的,但可能导致内存浪费。
(二):懒汉式
实例在首次使用时创建,节省内存,但在多线程环境下可能导致创建多个实例。
(三):懒汉式 + 同步锁
与懒汉式相似,但通过同步锁确保了实例的唯一性,牺牲了一些效率。
(四):双重锁检测(Double Check)方式
使用双重检查来创建实例,能节省内存,但可能因为指令重排序导致异常。
(五):双重锁检测(Double Check Locking)方式
与第四种方式类似,但通过使用volatile关键字防止指令重排序,提升效率。
(六):内部类方式
使用内部类来创建实例,既节省内存又高效,并且不需要同步锁。
(七):枚举方式
通过枚举实现单例,简单且线程安全,不会有反序列化问题。
(八):延伸知识
反序列化可能会违反单例模式的原则,但可以通过readResolve方法解决。
(九):总结
单例模式是一种常见的设计模式,有多种实现方式,每种方式都有其特点和适用场景。
想要了解更多内容?
文章来源:
IT学习日记
扫码关注公众号
一个专注于技术学习和实践的社区,致力于为广大技术爱好者提供最前沿、最实用的IT技术分享和思考。 运营者:InfoQ(极客邦)&阿里云签约作者,CSDN、知乎、掘金等平台后端优质创作者。
106 篇文章
浏览 18.2K
IT学习日记的其他文章
加入社区微信群
与行业大咖零距离交流学习
软件研发质量管理体系建设
白皮书上线