1.什么是单例模式
单例模式,属于创建类型的一种常用的软件设计模式。通过单例模式的方法创建的类在当前进程中只有一个实例。
实现步骤:
- 私有化构造方法
- 静态化实例对象
- 提供一个静态对象返回方法
1.1 饿汉模式
- 优点:没有加锁,执行效率会提高。
- 缺点:类加载时就初始化,浪费内存。
1.2 懒汉模式
- 优点:第一次调用才初始化,避免内存浪费。
- 缺点:必须加锁 synchronized 才能保证单例,但加锁会影响效率。
注:synchronized 关键字用法 https://www.cnblogs.com/fnlingnzb-learner/p/10335662.html
1.3 静态内部类
- 优点:兼顾了懒汉模式的内存优化(使用时才初始化)以及饿汉模式的安全性(不会被反射入侵)。
- 缺点:需要两个类去做到这一点,虽然不会创建静态内部类的对象,但是其 Class 对象还是会被创建,而且是属于永久带的对象。
注:静态内部类只有在被调用时才会被加载
-
1.4 双重检查锁
- 这种方式采用双锁机制,安全且在多线程情况下能保持高性能。
1.5 枚举
注:枚举类型使用 https://blog.csdn.net/newbie_907486852/article/details/81027512
参考:
https://www.runoob.com/design-pattern/singleton-pattern.html
https://blog.csdn.net/weixin_42152604/article/details/87915944
https://blog.csdn.net/weixin_42762133/article/details/82890555
https://www.cnblogs.com/fnlingnzb-learner/p/10335662.html
https://blog.csdn.net/newbie_907486852/article/details/81027512
附测试类
文章知识点与官方知识档案匹配,可进一步学习相关知识Java技能树首页概览91469 人正在系统学习中
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!