设计模式

java单例模式

2018-09-10  本文已影响8人  韭菜待收割

1、单例模式的三个特点?

1)单例类只能有一个实例。

2)单例类必须自己创建自己的唯一实例。

3)单例类必须给所有其他对象提供这一实例。

2、单例模式分类

懒汉式单例、饿汉式单例

3、饿汉式单例和懒汉式单例区别

区别1:线程安全

饿汉式天生是线程安全的。

懒汉式不是线程安全的,有三种方法可以实现线程安全。

方法1)在getInstance方法上加同步;

方法2)双重检查锁定;

方法3)静态内部类;

区别2:对象创建的时机不同

饿汉式单例:类一旦加载,就把单例初始化完成,保证getInstance的时候,单例是已经存在的了。

懒汉式单例:只有当调用getInstance的时候,才会去初始化这个单例。

4、单例模式的应用场景

线程池、缓存、日志对象、对话框、打印机等。

5、为什么类加载机制能保证初始化instance时只有一个实例?

Java源码使用同步(synchronized)的方式来保证。

上一篇下一篇

猜你喜欢

热点阅读