原文https://mp.weixin.qq.com/s/K8yesHkTCerRhS0HfB0LeA
单例模式
单例模式是指一个类在一个进程中只有一个实例对象(但也不一定,比如Spring中的Bean的单例是指在一个容器中是单例的)
单例模式创建分为饿汉式和懒汉式,总共大概有8种写法。但是在开源项目中使用最多的主要有两种写法:
1、静态常量方式属于饿汉式,以静态变量的方式声明对象。
这种单例模式在Spring中使用的比较多
举个例子,在Spring中对于Bean的名称生成有个类AnnotationBeanNameGenerator就是单例的。
2、双端检锁dcl
除了上面一种,还有一种双重检查机制在开源项目中也使用的比较多,而且在面试中也比较喜欢问。双重检查机制方式属于懒汉式,代码如下: