单例模式大家应该看得够多了
双锁, 静态内部类….太多太复杂
我这里介绍一种最终解决办法, 你应该很少见过, 但是最优雅
public enum SingletonClazz {
INSTANCE;
SingletonClazz(){
System.out.println("实例被初始化");
}
}
- 懒加载
- 没有多线程竞争问题
- 代码简洁
验证一下
public class App {
public static void main(String[] args) {
System.out.println("调用枚举实现的单例之前");
SingletonClazz s1 = SingletonClazz.INSTANCE;
SingletonClazz s2 = SingletonClazz.INSTANCE;
System.out.println(s1 == s2);
}
}
输出结果: