`

单例模式只有饿汉式和懒汉式吗?这几种单例模式你见过吗

 
阅读更多

设计模式之单例模式-单例模式的几种实现方式及小案例

本文来源:凯哥Java(wx:kaigejava)
联系凯哥--》公众号:凯哥Java(kaigejava)
凯哥个人博客:www.kaigejava.com

单例模式有几种?饿汉式、懒汉式。这两种是最常见的。还有几种是对其扩展的。具体如下:

我们可以从上图看到,共有六种方式。

其中在懒汉式基础上扩展的有两种。即:加锁的懒汉式及双重判断加锁的懒汉式

还有一种是使用内部类实现的。即:内部静态类的

最后一种是比较少见的。使用枚举的。

我们来看看每种方式代码都怎么写。

懒汉式:

我们来看看懒汉式优缺点:

饿汉式:

饿汉式的优缺点及适用场景:

加锁的懒汉式:

再来看看加锁懒汉式的由来:

双重判断加锁的懒汉式:

有了加锁的懒汉为什么还会有加锁双重判断的呢?这种由什么优缺点呢?请看下图:

内部静态类是实现的懒汉式:

这种模式的有缺:

使用枚举:

优点缺点:

我们使用单例模式做个小案例。

 

分享到:
评论

相关推荐

    使用单例模式创建学生管理系统(饿汉式、懒汉式)

    在这个场景中,我们将探讨如何使用单例模式来创建一个学生管理系统,主要涉及“饿汉式”和“懒汉式”两种实现方式。 **饿汉式单例** 饿汉式单例在类加载时就完成了实例化,因此它是线程安全的。这种方式保证了单例...

    单例模式(饿汉模式、懒汉模式、DCL单例模式、枚举)

    单例模式是设计模式中的一种,它在软件工程中用于控制类的实例化过程,确保一个类只有一个实例,并提供一个全局访问点。这种模式在资源管理、缓存、日志记录等方面广泛应用。本文将详细讨论四种常见的单例实现方式:...

    java 单例模式(懒汉式与饿汉式)

    单例设计模式又分为两种方式,懒汉式和饿汉式。 懒汉式单例 懒汉式单例模式是指只有当调用getInstance的时候,才会初始化这个单例。这种方法可以保证线程安全,又减轻了资源加载和性能上的负担。下面是一个懒汉式...

    设计模式——单例模式

    实现单例模式主要有两种方式:饿汉式和懒汉式。 ### **饿汉式单例模式** 饿汉式单例模式在类加载时就完成了实例化,因此也称为静态初始化。这种方式保证了线程安全,但可能会造成不必要的资源浪费,因为即使未使用...

    java 单例模式(饿汉模式与懒汉模式).docx

    单例模式有两种常见的实现方式:饿汉模式和懒汉模式。 1. **饿汉模式**: - 饿汉模式的特点是在类加载时就完成了初始化,因此线程安全。它的实现方式是通过静态常量或者静态代码块来立即创建单例对象。 ```java ...

    单例模式详解 1. 什么是单例模式? 1.1 单例模式的核心要素 1.2 为什么需要单例模式? 2. 单例模式的实现方式 2.1 饿汉式(静态常量) 2.2 饿汉式(静态代码块) 2.3 懒汉式(线程

    单例模式详解 1. 什么是单例模式? 1.1 单例模式的核心要素 1.2 为什么需要单例模式? 2. 单例模式的实现方式 2.1 饿汉式(静态常量) 2.2 饿汉式(静态代码块) 2.3 懒汉式(线程不安全) 2.4 懒汉式(线程安全,...

    QT_C++单例模式懒汉+饿汉.rar

    总结起来,"QT_C++单例模式懒汉+饿汉.rar"这个压缩包主要介绍了如何在QT环境下使用C++实现单例模式的两种常见方式,即饿汉式和懒汉式。通过对这两种方式的理解和实践,开发者可以更好地掌握单例模式的使用,提高代码...

    单例模式(懒汉式,饿汉式)

    单例模式有两种常见的实现方式:懒汉式和饿汉式。 ### 懒汉式单例 懒汉式单例,顾名思义,是一种延迟初始化的单例模式,即在第一次调用时才创建实例。这种方式的优点是在需要的时候才创建对象,节省了内存资源;...

    【ASP.NET编程知识】java 单例模式(饿汉模式与懒汉模式).docx

    单例模式分为两种主要实现方式:饿汉模式和懒汉模式。 1. **饿汉模式**: 饿汉模式在类加载时就完成了初始化,因此类加载时会立即创建单例对象。这种方式确保了线程安全,因为对象的创建在类加载时已经完成,不会...

    C++单例模式懒汉式和饿汉式

    在C++中,单例模式的实现通常有两种常见的方式:懒汉式(Lazy Initialization)和饿汉式(Eager Initialization)。 1. 懒汉式单例模式: 懒汉式单例的特点是在第一次使用时才创建实例,即延迟初始化。这种设计的...

    java单例设计模式-饿汉式-懒汉式 (2).docx

    这种模式在Java中有两种常见的实现方式:饿汉式和懒汉式。 1. 饿汉式单例: 饿汉式单例在类加载时就完成了初始化,因此类加载时就创建了单例对象。这种方式称为预先加载方式,它保证了线程安全,因为对象的创建在类...

    java单例设计模式-饿汉式-懒汉式[归纳].pdf

    总结,Java单例设计模式通过饿汉式和懒汉式实现,饿汉式在类加载时创建实例,适用于不需要延迟加载的情况;懒汉式在首次调用时创建,但在多线程环境下需要额外的同步措施以保证线程安全。在实际应用中,应根据具体...

    java单例设计模式-饿汉式-懒汉式.docx

    在Java中,单例模式通常有两种实现方式:饿汉式和懒汉式。 1. 饿汉式: 饿汉式是在类加载时就完成了初始化,因此它是线程安全的。代码如下: ```java public class Singleton { private static final Singleton ...

    java 单例模式(懒汉式与饿汉式).docx

    懒汉式单例是一种延迟加载的单例模式,它只有当调用 getInstance 的时候,才会初始化这个单例。这种模式的优点是可以减少资源的加载和性能上的负担,但是它需要使用 synchronized 关键字来确保线程安全。 以下是...

    2种单例模式:1赖汉式:2饿汉式

    这里我们将详细探讨标题中提到的两种单例模式——"懒汉式"(Lazy Initialization)和"饿汉式"(Eager Initialization)。 1. **饿汉式单例模式** 饿汉式单例的特点是类加载时就完成了实例化,确保了线程安全,但...

    java单例设计模式-饿汉式-懒汉式.pdf

    Java 单例设计模式主要分为两种实现方式:饿汉式和懒汉式。这两种方式都是为了确保一个类只有一个实例,并且提供全局访问点。 **饿汉式**: 饿汉式单例在类加载时就完成了实例化,因此是静态常量的方式,确保了线程...

    java单例设计模式-饿汉式-懒汉式[参照].pdf

    在Java中,单例模式有两种常见的实现方式:饿汉式和懒汉式。 1. **饿汉式**: 饿汉式单例在类加载时即创建了实例,因此它是线程安全的。这种方式保证了类加载后就立即初始化单例对象,避免了多线程环境下的同步...

    java单例设计模式-饿汉式-懒汉式 (2).pdf

    它主要分为两种实现方式:饿汉式(Eager Initialization)和懒汉式(Lazy Initialization)。 ### 1. 饿汉式单例设计模式 饿汉式在类加载时即创建单例对象,因此在类加载阶段就已经完成了初始化。由于类加载是线程...

    java 单例模式(饿汉模式与懒汉模式)

    单例模式有两种实现方式:饿汉式和懒汉式。 饿汉式单例模式 饿汉式单例模式是指在类加载时就创建对象的单例模式。它的优点是线程安全,避免了多线程同时访问对象时的安全隐患。但是,饿汉式单例模式的缺点是可能会...

Global site tag (gtag.js) - Google Analytics