您的位置 首页 java

java中3中单例模式例子,第3种才是完美的绝对单例

面试

java 面试官也经常面试这个 单例模式 ,一般能说出 两私一公 就不错了

java程序员平时开发用的少,但面试遇到多啊,也是有必要研究下的

什么叫两私一公

  1. 私有的 构造函数
  2. 私有静态实例属性
  3. 公共的获取实例的 静态方法

基础知识点

多线程 线程 安全、 static 、构造函数、枚举

例子1

传统单线程环境下

缺点:线程不安全

例子2

  • 多线程下通过 synchronized 保证线程安全
  • 跟例子1就多了同步,实例初始过了就直接返回实例不用进入同步代码块了
  • 多重检查锁的方式去保证安全
  • 缺点:还是可以通过 反射去创建实例 ,不完美啊

例子3(完美)

利用枚举的特性在 JVM 层保证绝对的单例

为啥枚举的单例就完美了?

枚举本身是无法通过反射、克隆、反 序列化 等等把对象初始出来的。

枚举底层原理我就不在这里细说了。

总结

  • 搞懂两私一公(面试的时候能说出第2个例子就可以)
  • 枚举完美单例(能说出第3个例子就非常好)

java程序员、编程、后端开发

文章来源:智云一二三科技

文章标题:java中3中单例模式例子,第3种才是完美的绝对单例

文章地址:https://www.zhihuclub.com/182413.shtml

关于作者: 智云科技

热门文章

发表回复

您的电子邮箱地址不会被公开。

网站地图