单例

2021-05-14  本文已影响0人  ttyttytty
场景:用的多,资源消耗大,初始化时间长,需要保持唯一性。如,工具类
条件:反射、序列化、克隆、多线程
1.静态内部类枚举单例 懒汉式 
    枚举实现单例优势:不会被反射(枚举无newInstance方法)出,实现单例;
            无序列化的方法,实现单例;
            不支持克隆,实现单例;
    枚举劣势:性能差
    懒加载,静态内部类,使用到static再初始化
2.容器单例
    线程不安全,需要使用者控制
    hashtable,线程绝对安全,
    concurrenthashmap/hashmap,部分锁定,线程算安全
3.Double check lock + volatile  懒汉式
    弊端: 不完全的单例(指令重排),代码不优雅,check麻烦

//加载一个类时,其内部类不会同时被加载。
//一个类被加载,当且仅当其某个静态成员(静态域、构造器、静态方法等)被调用时发生。
实例:单例

上一篇 下一篇

猜你喜欢

热点阅读