单例模式确保一个类只有一个实例,并提供全局访问点。适用于需要全局唯一对象的场景(如配置管理器、数据库连接池)。
代码示例:
java
import java.util.stream.IntStream;
public class ConfigManager {
public static void main(String[] args) {
IntStream.range(0,10).parallel()
.forEach(i -> System.out.println(ConfigManager.getInstance().getConfig("a")));
}
// 1. 私有静态实例
private static volatile ConfigManager instance;
// 2. 私有构造方法
private ConfigManager() {}
// 3. 双重检查锁定获取实例
public static ConfigManager getInstance() {
if (instance == null) {
synchronized (ConfigManager.class) {
if (instance == null) {
instance = new ConfigManager();
}
}
}
return instance;
}
// 业务方法示例
public String getConfig(String key) {
return "Value of " + key;
}
}

**使用场景:**配置文件管理、日志记录器、线程池、连接池
**优点:**节省内存、避免重复创建
**缺点:**需处理多线程安全问题;过度使用会导致代码耦合