单例模式的N种写法

发布时间 2023-06-25 20:24:33作者: 加速丨世界

1. 饿汉式

优点:写法简单,线程安全

缺陷:占用内存高,对象还没有被使用已经被创建出来了。

2. 懒汉式

优点:写法简单,对象使用时才被创建。

缺陷:线程不安全。

3. 加synchronized 

优点:写法简单,对象使用时才被创建。

缺陷:接口性能下降明显。

4. 双重检查

优点:对象使用时才被创建。

缺陷:写法开始变复杂,线程其实还是不安全。

5. volatile(防止指令重排序)

优点:对象使用时才被创建。

缺陷:写法变复杂,性能进一步下降。

6. 内部类

优点:写法简单,线程安全,节约资源

缺陷:序列化或者反射会破坏单例。