使用枚举实现绝对单例

单例模式是常用的设计模式,常用于数据库连接池和配置读取。传统的Java单例实现包括懒汉式和饿汉式,但无法完全避免多实例问题,因为反射可以绕过私有构造器。从Java1.5开始,枚举提供了一种确保单例绝对唯一且线程安全的方式,同时也防止了反射和序列化导致的多次实例化。
摘要由CSDN通过智能技术生成

单例模式是开发中用的最多的设计模式之一,在诸如数据库连接池、配置文件读取等业务场景广泛使用。单例的Java实现大家都知道有两种方式,最初的英文文档翻译者为其起了很有趣的名字:“懒汉式”和“饿汉式”,当然还包括这两种方式的其他变种,比如增加了相关线程安全的同步锁,但即使这样也不能实现绝对意义上的Singleton ,因为Java本身的反射机制可以绕过构造方法生成对象,即使你把构造方法变成了Private。

Java1.5之后,随着枚举类型的加入,单例多了一个实现方法,(包含单个元素的枚举类型):


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值