美文网首页
设计模式之单例设计模式

设计模式之单例设计模式

作者: MR_ChanHwang | 来源:发表于2020-03-21 13:34 被阅读0次

    饿汉式

    在静态代码块中直接加载进jvm;
    缺点:一开始就会被加载进来。

    懒汉式

    在初始化时判断是否已经被初始化
    缺陷:若多线程初始化则会被重复初始化

    双重判断加同步锁

    在INSTANCE上加voliate 防止代码重排序
    避免在未初始化时就被引用

    在同步代码块时加synchronized,保证一个线程可以获得锁并进行初始化;

    静态内部类单例

    避免使用了同步锁,通过jvm内部的机制保证了线程安全(类加载只能一次)

    枚举单例

    最完美的单例
    可以防止反序列化
    为什么可以防止反序列化?因为反序列化依赖于类的构造函数,而枚举单例不存在构造函数

    相关文章

      网友评论

          本文标题:设计模式之单例设计模式

          本文链接:https://www.haomeiwen.com/subject/pzyyyhtx.html