##查看代码:https://gitee.com/jly521/singleton.gitgit
单例模式(Singleton)安全
- 应用场景:保证一个类仅有一个实例,并提供一个访问它的全局访问点
- Spring 中的单例模式完成了后半句话,即提供了全局的访问点BeanFactory
- 但没有从构造器级别去控制单例,这是由于Spring 管理的是是任意的Java 对象
- Spring 下默认的Bean 均为单例

- 经常使用单例模式写法:饿汉式、懒汉式、注册式、序列化
饿汉模式网络
- 在类加载的时候就当即初始化,而且建立单例对象
- 优势:没有加任何的锁、执行效率比较高, //在用户体验上来讲,比懒汉式更好
- 缺点:类加载的时候就初始化,无论你用仍是不用,我都占着空间 //浪费了内存,有可能占着茅坑不拉屎
- 绝对线程安全,在线程还没出现之前就是实例化了,不可能存在访问安全问题
懒汉模式性能
lazy1:线程

lazy2:3d

lazy3:对象
- 特色:在外部类被调用的时候内部类才会被加载
- 内部类必定是要在方法调用以前初始化
- 巧妙地避免了线程安全问题
- 这种形式兼顾饿汉式的内存浪费,也兼顾synchronized性能问题
- 完美地屏蔽了这两个缺点
- 史上最牛B的单例模式的实现方式


序列化::blog
序列化内存
- 就是说把内存中的状态经过转换成字节码的形式
- //从而转换一个IO流,写入到其余地方(能够是磁盘、网络IO)
- //内存中状态给永久保存下来了
反序列化get
- //讲已经持久化的字节码内容,转换为IO流
- //经过IO流的读取,进而将读取的内容转换为Java对象
- //在转换过程当中会从新建立对象new

注册模式::
