本篇博文需要有java并发,类加载过程,java反射的一些知识
单列确保系统中一个类只用一个实列
单列模式提供的全局访问方法可以认为使用了简单工厂模式,简单点来说单列模式自己负责创建自己
单列模式的创建方式
由于本文主要讲解如何破解单列模式,所以在这里就不详细介绍,简单的列举5种创建方式与特点
饿汉式 – 线程安全不延时加载
懒汉式 –线程不安全延时加载 –可能存在引用还没完全初始化的对象
双重检索机制 –线程相对安全延时加载
静态内部类 –线程安全延时加载 –由于对象变量为静态变量在类加载过程中的初始化阶段虚拟机保证一个类的
()方法在多线程中被正确的加锁,同步–>线程安全。–内部类在虚拟机中特性为延迟加载 枚举模式 –线程安全不能延时加载天然单列模式不可通过反射序列化反序列化破解