1.软文推荐

2.软文推荐

3.软文推荐

摘要:单例模式是java中常用的一种设计模式,本文将从四个方面介绍java单例模式有哪些,包括饿汉式、懒汉式、双重校验锁和静态内部类。

图片

一、饿汉式

饿汉式是在类加载的时候就已经创建好了实例,以空间换时间的做法。

其中最简单的一种实现方式就是将构造器私有化,然后提供一个静态的实例化对象方法,这个方法总是返回同一个实例。

二、懒汉式

懒汉式是在需要时才创建实例,以时间换空间的方式。

单例模式最常见的方法就是懒汉式,本质上还是在饿汉式的基础上进一步优化。

三、双重校验锁

双重校验锁(Double-check Locking)是在懒汉式的基础上进一步优化,通过加锁来保证线程安全。

具体做法是在实例化方法中加入两个if语句,在第一个if语句外面再加一层synchronized关键字,这同时也是一种优化代码效率的手段。

四、静态内部类

静态内部类是一种优雅地方式,既不依赖JDK版本,也不受JVM保护,而且线程安全,这也是推荐使用的方式。

内部类在实例化时,会先判断该实例是否已经存在,若不存在才会执行实例化操作,这就保证了线程安全。