单例模式:确保全局唯一实例
单例模式确保一个类只有一个实例,并提供全局访问点。适用于需要全局唯一对象的场景(如配置管理器、数据库连接池)。
代码示例:
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;}
}
使用场景:配置文件管理、日志记录器、线程池、连接池
优点:节省内存、避免重复创建
缺点:需处理多线程安全问题;过度使用会导致代码耦合