《JAVA八股真解》五、设计模式

#JAVA##JAVA面经##JAVA内推#

1. 单例模式的几种写法

单例模式确保一个类只有一个实例,并提供全局访问点。以下是几种常见的实现方式:

懒加载 —— 双重检查锁(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;
    }
}

说明

  • 使用双重检查锁(Double-Checked Locking)确保线程安全。
  • volatile 关键字防止指令重排序,保证多线程环境下的可见性。
  • 在首次调用时才创建实例,实现懒加载。

优点:线程安全,延迟初始化,性能较好。 缺点:代码相对复杂,需注意 JVM 内存模型的影响。

预加载 —— 饿汉模式

public class Singleton {
    private static final Singleton instance = new Singleton();

    private Singleton() {}

    public static Singleton getInstance() {
        return instance;
    }
}

说明

  • 类加载时即创建实例,属于“饿汉式”。
  • 不需要同步机制,因此性能高。

剩余60%内容,订阅专栏后可继续查看/也可单篇购买

本专栏在精不在多,内容分为八股文、大厂真实面经,面试通过后将offer和面试题私发给我,可退还专栏的收益部分费用。欢迎大家共建专栏

全部评论
接好运
点赞 回复 分享
发布于 03-07 12:58 广东
专栏目录https://www.nowcoder.com/share/jump/1772859327707
点赞 回复 分享
发布于 03-07 12:58 广东
本专栏在精不在多,内容分为八股文、大厂真实面经,面试通过后将offer和面试题私发给我,可退还专栏的收益部分费用。欢迎大家共建专栏。
点赞 回复 分享
发布于 03-06 15:51 广东

相关推荐

在笔试的大西瓜很矫健:校招数分不用想了,这经历和学历都不够用,大厂更别想,初筛都过不了,说点不好听的小厂数分都进不去(小厂也是假数分),要两个对口实习+3个项目(或者3+2),而且要有含金量才能补一点你的学历劣势。 建议刷实习,社招找数分,校招看运气,能入行业就行,可以运营转数分
点赞 评论 收藏
分享
评论
4
2
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务