<h4 id="单例模式">单例模式
- 饿汉模式
- 初始化时间 类加载到JVM时
- 缺点 类加载慢
- 优点
- 获取对象速度快
- 避免多线程的同步问题
- 懒汉模式【线程不安全】
- 初始化时间 第一次调用方法时
- 缺点
- 第一次方法调用响应慢,因需要实例化对象。
- 多线程不安全
- 优点 节约资源
- 懒汉模式【线程安全】
- 初始化时间 第一次方法调用时
- 缺点 调用方法为“synchronized”加锁,性能低下,造成不必要开销
- 双重检查【DCL】
-
静态内部类 【推荐】
- 初始化时间 第一次调用静态方法时,内部类完成JVM的加载时,完成外部类单例的初始化
-
优点 保证单例,保证线程安全
说明 1.到此为止的单例模式,在进行反序列化时,如果不对readResolve()方法做处理,则会生成新的对象,而不再是单例 2.反序列化时,能创建对象实例的方法是:readObject()
-
枚举单例
- 特点:
- 枚举天然的线程安全
- 枚举天然的反序列化时不会创建新的对象。
- 特点:
说明: 1.单例模式首推:静态内部类de方式 2.其次是:DCL方式
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。