单例模式
单例模式(Singleton Pattern)是 Java 中最常用的设计模式之一,核心目标是确保一个类在整个应用程序中只有一个实例,并提供全局访问点。这不仅能控制资源访问,避免多线程竞争或重复创建带来的性能损耗,还能统一管理全局状态,保证数据一致性。
饿汉模式
饿汉模式在类加载时就完成实例化,天然线程安全,但缺点是无论后续是否使用,都会占用内存资源。
public class Singleton {
// 类加载时进行实例化
private static final Singleton hungry = new Singleton();
// 全局唯一获取实例的接口
public static Singleton getInstance() {
return hungry;
}
// 构造方法私有化
private Singleton() {}
}
这种实现方式不存在运行时实例化过程,所以没有线程安全问题。但如果初始化过程复杂或占用较多资源,可能会造成浪费。
懒汉模式
懒汉模式采用延迟初始化,仅在第一次使用时才创建实例,节省资源,但必须处理线程安全问题。
class Singleton {
// volatile:禁止指令重排序
private static volatile Singleton lazy = null;
// 创建锁对象
private static final Object object = new Object();
// 全局唯一获取实例的接口
Singleton {
(lazy == ) {
(object) {
(lazy == ) {
lazy = ();
}
}
}
lazy;
}
{}
}


