单例模式(Singleton Pattern)是最简单的设计模式之一,保证一个类仅有一个实例,并提供一个访问它的全局访问点。

常见的实现方式

1. 饿汉式 (Hungry)

类加载时就初始化,线程安全,但可能造成资源浪费。

public class Singleton {
    private static Singleton instance = new Singleton();
    private Singleton() {}
    public static Singleton getInstance() { return instance; }
}

2. 懒汉式 (Lazy) + 双重检查锁 (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;
    }
}

3. 静态内部类

利用 Java 类加载机制实现延迟加载,线程安全,推荐使用。

4. 枚举 (Enum)

Effective Java 作者推荐的方式,自动支持序列化机制,防止反射攻击。

点赞(95) 打赏

评论列表 共有 30 条评论

暂无评论
立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部