码迷,mamicode.com
首页 > 编程语言 > 详细

java中3中单例模式例子

时间:2019-10-06 09:19:21      阅读:75      评论:0      收藏:0      [点我收藏+]

标签:初始   线程安全   静态   原理   代码   class   安全   缺点   开发   

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

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

什么叫两私一公

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

基础知识点

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

例子1

传统单线程环境下

缺点:线程不安全

技术图片

 

例子2

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

 

例子3(完美)

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

技术图片

 

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

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

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

总结

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

java中3中单例模式例子

标签:初始   线程安全   静态   原理   代码   class   安全   缺点   开发   

原文地址:https://www.cnblogs.com/lizhilin777/p/11626382.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!