java常见面试考点
往期文章推荐:
java常见面试考点(一):自增变量
java常见面试考点(三):类初始化与实例初始化
java常见面试考点(四):方法的参数传递机制
java常见面试考点(五):基本类型和包装类型的区别
java常见面试考点(六):深入理解String类型
【版权申明】未经博主同意,谢绝转载!(请尊重原创,博主保留追究权);
本博客的内容来自于:java常见面试考点(二):单例模式;
学习、合作与交流联系q384660495;
本博客的内容仅供学习与参考,并非营利;
一、单例模式是什么?
单例设计模式,即某个类在整个系统中只能有一个实例对象可被获取和使用的代码模式。
例如:代表JVM运行环境的Runtime类
二、单例模式的实现
1. 实现要点
- 一是某个类只能有一个实例:构造器私有化
- 二是它必须自行创建这个实例:含有一个该类的静态变量来保存这个唯一的实例
- 三是它必须自行向整个系统提供这个实例:对外提供获取该实例对象的方式:
- 直接暴露
- 用静态变量的get方法获取
2. 常见形式
- 饿汉式:直接创建对象,不存在线程安全问题
- 直接实例化饿汉式(简洁直观)
- 枚举式(最简洁)
- 静态代码块饿汉式(适合复杂实例化)
- 懒汉式:延迟创建对象
- 线程不安全(适用于单线程)
- 线程安全(适用于多线程)
- 静态内部类形式(适用于多线程)
3. 代码实现
- 饿汉式单例模式
class Singleton {
private Singleton() {
}
private static Singleton instance = new <