单例模式:单例类在整个程序中只有一个实例,这个类负责创建自己的对象,并确保只有一个对象被创建
代码实现要点:
1.私有构造器
2.持有该类的属性
3.对外提供获取实例的静态方法
饿汉模式:
线程安全 反射不安全 反序列化不安全
登记式:
线程安全、防止反射攻击、反序列化不安全
枚举式:
线程安全、支持序列化、反序列化安全、防止反射攻击
懒汉式:
线程不安全、延迟加载、(两种同步、效率低)
双检锁:
线程安全、volatile
ThreadLocal:
不加锁、以空间换时间、为每个线程提供变量的独立副本、可以保证各自线程中是单例的、但是不用线程之间不保证
CAS:
无锁乐观策略、线程安全