如何选择单例,单例有哪些创建方式

参考答案

一、如何选择单例创建方式

  • 如果不需要延迟加载单例,可以使用枚举或者饿汉式,相对来说枚举性好于饿汉式。
  • 如果需要延迟加载,可以使用静态内部类或者懒汉式,相对来说静态内部类好于懒韩式。
  • 最好使用饿汉式。

二、单例的五种创建方式

  • 饿汉式:主要使用,类初始化时,会立即加载该对象,线程天生安全,调用效率高。
  • 懒汉式: 主要使用,类初始化时,不会初始化该对象,真正需要使用的时候才会创建该对象,具备懒加载功能。
  • 静态内部方式:结合了懒汉式和饿汉式各自的优点,真正需要对象的时候才会加载,加载类是线程安全的。
  • 枚举单例: 使用枚举实现单例模式 优点:实现简单、调用效率高,枚举本身就是单例,由jvm从根本上提供保障!避免通过反射和反序列化的漏洞, 缺点没有延迟加载。
  • 双重检测锁方式 (因为JVM本质重排序的原因,可能会初始化多次,不推荐使用)

以上,是Java面试题【如何选择单例,单例有哪些创建方式】的参考答案。

输出,是最好的学习方法

欢迎在评论区留下你的问题、笔记或知识点补充~

—end—

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧