java 枚举 单例_Java单例使用枚举

在创建单例类时,请考虑使用枚举。它解决了可能会因反序列化和反射而出现的问题。

单例是应该在每个JVM中只有一个实例的类。单例类的Same实例被多个线程重用。大多数情况下,我们使用单例来表示系统配置和窗口管理器,因为这些实例应该是JVM中所有线程和对象所共有的。【优锐课】抽丝剥茧 细说架构那些事抽丝剥茧 细说架构那些事

制作单例的传统方法

有几种流行的制作单例的方法。

方法1:具有公共静态最终字段的单例public class Singleton {public static final Singleton INSTANCE = new Singleton();private Singleton() {}}

方法2:使用公共静态工厂方法的单例public class Singleton {private static final Singleton INSTANCE = new Singleton();private Singleton() {}public static Singleton getInstance(){return INSTANCE;}}

方法3:具有延迟初始化的单例public class Singleton {private static Singleton INSTANCE = null;private Singleton() {}public static Singleton getInstance() {if (INSTANCE == null) {synchronized (Singleton.class) {if (INSTANCE == null) {INSTANCE = new Singleton();}}}return INSTANCE;}}

上述方法的优缺点

以上所有方法都使用私有构造函数强制执行不满足要求(无法创建实例)。在这里,即使我们没有任何事要做&#x

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值