单列模式
一、静态引用变量直接实力例化对象
随着类装载就完成实例化
二、使用代码块,和一一样
三、懒汉式加载
前两个是类装载就完成实例化,不是当需要调用的时候才实例化
四、三的改进,加锁避免线程安全的问题,但是耗时,不高效
五、用静态代码块缩小锁的范围,但是还是会出现线程的问题
六、双重检查解决线程安全问题(volatie是用来解决JTI的指令重排问题,防止在没有初始化之前就返回instance)
七、用的最多的内部类的方式
外部类加载一次,内部类也只加载一次,实例化也只进行一次。而且外部类加载时是不加载内部类的,只有在调用这个内部类的时候才会加载。
八、effective java中提出的枚举写法是最好的单列模式
前面的单列模式都不能解决序列化问题,这个可以防止反序列化问题
标签:单列,模式,实例,线程,单例,序列化,加载 From: https://www.cnblogs.com/liu-jin/p/17398120.html