《JAVA八股真解》五、设计模式
#JAVA##JAVA面经##JAVA内推#
1. 单例模式的几种写法
单例模式确保一个类只有一个实例,并提供全局访问点。以下是几种常见的实现方式:
懒加载 —— 双重检查锁(DCL)模式
public class Singleton {
private volatile static Singleton instance;
private Singleton() {}
public static Singleton getInstance() {
if (instance == null) { // 第一次检查
synchronized (Singleton.class) {
if (instance == null) { // 第二次检查
instance = new Singleton();
}
}
}
return instance;
}
}
说明:
- 使用双重检查锁(Double-Checked Locking)确保线程安全。
volatile关键字防止指令重排序,保证多线程环境下的可见性。- 在首次调用时才创建实例,实现懒加载。
优点:线程安全,延迟初始化,性能较好。 缺点:代码相对复杂,需注意 JVM 内存模型的影响。
预加载 —— 饿汉模式
public class Singleton {
private static final Singleton instance = new Singleton();
private Singleton() {}
public static Singleton getInstance() {
return instance;
}
}
说明:
- 类加载时即创建实例,属于“饿汉式”。
- 不需要同步机制,因此性能高。
剩余60%内容,订阅专栏后可继续查看/也可单篇购买
【八股真解】精炼最新高频面经 文章被收录于专栏
本专栏在精不在多,内容分为八股文、大厂真实面经,面试通过后将offer和面试题私发给我,可退还专栏的收益部分费用。欢迎大家共建专栏
查看3道真题和解析