不飞则已,一飞冲天;不鸣则已,一鸣惊人。这篇文章主要讲述面试篇手写单例模式及原理剖析相关的知识,希望能为你提供帮助。
文章图片
一、什么是单例模式
单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。
注意
- 单例模式只能由一个实例对象
- 单例类必须自己创建自己的唯一实例。
- 单例类必须给所有其他对象提供这一实例。
- Spring框架IOC容器就使用到了单例模式,默认创建对象的时候为单例模式
- ResultBean 后端统一返回给前端的封装类,这个在项目中是唯一的,只用一个对象进行返回JSON给前端进行渲染
- Runtime 体现了饿汉式单例
- Console 体现了双检锁懒汉式单例
- Collections 中的 EmptyNavigableSet 内部类懒汉式单例
- ReverseComparator.REVERSE_ORDER 内部类懒汉式单例
- Comparators.NaturalOrderComparator.INSTANCE 枚举饿汉式单例
- 提供了对唯一实例的访问
- 可以节约系统资源,提高系统的性能,减少不必要的内存开销
- 允许可变数目的实例(多例类)
- 扩展困难(缺少抽象层)
- 单例类的职责过重
- 由于自动垃圾回收机制,可能会导致共享的单例对象的状态丢失
推荐阅读
- Nacos源码系列—订阅机制的前因后果(上)
- 程序异常和日志的设计方法
- 数据结构-ArrayList和顺序表
- Java网络编程之实现资源下载详解王道Java
- Nacos源码系列—订阅机制的前因后果(下)
- 人工智能计算机视觉之OpenCV学习详解一
- C语言_文件操作相关练习题
- 架构师03-业务路由与监控统计的设计
- 数据治理(数据仓库数据质量管理)