单例模式示例代码如下,请分析它有哪些问题:public class Singleton { private static Singleton instance; public static Singleton getInstance() { if (instance == null) { instance = new Singleton(); } return instance; } }
考察说明
考察多线程环境下懒加载单例的线程安全与正确性
回答思路
- 指出非线程安全,多个线程可能同时创建实例
- 说明指令重排可能导致未完全初始化对象被返回
- 提出加锁或静态内部类等改进方案
- 能结合 volatile 和双重检查锁说明
- 能讨论反射和序列化破坏单例的边界
本题已收录答题指导
本题附完整参考答案与评分标准
登录后可查看结构化答题指导;也可以直接开一场模拟面试,AI 面试官用本题实时追问并给出评分。