专业的JAVA编程教程与资源

网站首页 > java教程 正文

java面试:单例模式,一篇就够了(java单例模式写法)

temp10 2024-09-22 10:00:51 java教程 9 ℃ 0 评论

为什么要熟练掌握单例模式

  1. 平时用的多
  2. 面试问的多

什么是单例模式

单例模式是指在系统的生命周期内,某个类只有一个实例对象;

一般来说,这个类的实例对象的获取只有一个全局访问点,用来保证这个类只能有一个实例对象。

java面试:单例模式,一篇就够了(java单例模式写法)

单例模式的优点

  • 节省内存
  • 有利于协调系统整体的行为

比如一个系统的线程池与连接池往往在JDK或者其他库提供的基础之上封装为单例模式实现。或着负责打印任务处理的类等等。

单例模式的实现

  • 饿汉式

将构造函数声明为private权限,然后再类的内部通过static公有变量直接初始化,并提供给外界访问。

优点:实现简单

缺点:不能做到延迟加载

  • 懒汉式

与饿汉式基本类似,唯一的去别点在于延迟初始化static变量,需要注意的点是考虑并发场景,需要加锁;

优点:做到了延迟加载,但实现相对较复杂,而且涉及到了锁对性能也会略有影响;

  • 静态内部类

在延迟加载与实现上做到了比较好的平衡。

  • 枚举实现

将枚举视作一个类,枚举里的每一个元素视为这个类的一个实例,那么枚举里的所有方法就可以通过枚举元素调用。具体实现如下:

在延迟加载与实现上做到了比较好的平衡

单例模式的应用场景

  • 日志对象
  • 计数器
  • 线程池&连接池&缓存池等全局性服务类,如果可以用单例实现,优先选用单例

欢迎各位评论补充。

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表