单例模式:确保全局唯一实例

单例模式确保一个类只有一个实例,并提供全局访问点。适用于需要全局唯一对象的场景(如配置管理器、数据库连接池)。

代码示例:

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;
    }
}

**使用场景:**配置文件管理、日志记录器、线程池、连接池

**优点:**节省内存、避免重复创建

**缺点:**需处理多线程安全问题;过度使用会导致代码耦合

相关推荐
小刘|9 分钟前
单例模式详解
java·开发语言·单例模式
超级无敌永恒暴龙战士10 分钟前
Java网络编程
java·websocket
超浪的晨15 分钟前
Java 内部类详解:从基础到实战,掌握嵌套类、匿名类与局部类的使用技巧
java·开发语言·后端·学习·个人开发
探索java20 分钟前
JVM 垃圾收集算法全面解析
java·jvm·垃圾收集算法
晓131331 分钟前
JavaScript加强篇——第八章 高效渲染与正则表达式
开发语言·前端·javascript
阳光开朗_大男孩儿1 小时前
nfs 锁机制demo
开发语言·多线程·多进程·文件锁
芷栀夏1 小时前
飞算Java AI开发助手:引领智能编程新风尚
java·人工智能·python
Moso_Rx1 小时前
JavaEE多线程——锁策略 CAS synchronized优化
java·java-ee
Dcs1 小时前
他花了一千美元买AI写代码,却说“值了”:深入解析大型思维模型的开发效率革命
java
Hello-Mr.Wang1 小时前
使用Spring Boot和PageHelper实现数据分页
java·开发语言·spring boot