`
simgsg
  • 浏览: 96141 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

单例模式中,懒汉式和饿汉式的区别

 
阅读更多
<p>饿汉式:<br> public class Singleton{<br> private static Singleton singleton = new Singleton ();<br> private Singleton (){}<br> public Singleton getInstance(){return singletion;}<br> } <br><br> 懒汉式:<br> public class Singleton{<br> private static Singleton singleton = null;</p>
<p> private Singleton (){}<br> public static synchronized synchronized getInstance(){<br> if(singleton==null){<br> singleton = new Singleton();<br> }<br> return singleton;<br> }<br> } <br><br> 比较:<br> 饿汉式是线程安全的,在类创建的同时就已经创建好一个静态的对象供系统使用,以后不在改变<br> 懒汉式如果在创建实例对象时不加上synchronized则会导致对对象的访问不是线程安全的<br> 推荐使用第一种 .<br>从实现方式来讲他们最大的区别就是懒汉式是延时加载,<br>他是在需要的时候才创建对象,而饿汉式在虚拟机启动的时候就会创建,<br>使用的场合根据具体环境和个人习惯吧.</p>
分享到:
评论

相关推荐

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

    java 单例模式(懒汉式与饿汉式) java 单例模式是一种常用的软件设计模式。在它的可信结构中只包含一个被实例化单例的特别类。通过单例设计模式可以把整系统中的一个类只有一个实例。单例设计模式又分为两种方式,...

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

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

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

    Java 单例模式(懒汉式与饿汉式) Java 单例模式是一种常用的软件设计模式,在它的可信结构中只包含一个被实例化单例的特殊类。通过单例设计模式可以把整系统中的一个类只有一个实例。单例设计模式又分为两种方式,...

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

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

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

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

    设计模式——单例模式(懒汉模式)

    除了DCL之外,还有一种饿汉式单例模式,它在类加载时就完成了实例化,虽然牺牲了懒加载的特性,但提供了更高的效率和线程安全性。不过,对于那些不需要立即加载且生命周期较长的单例对象,懒汉式更加适用。 在实际...

    java + 单例模式 + 懒汉式 + 资源

    在Java中,单例模式有多种实现方式,其中最常用的两种是饿汉式(Eager Initialization)和懒汉式(Lazy Initialization)。本文将深入探讨懒汉式单例模式,以及它与饿汉式的区别。 ### 懒汉式单例模式 懒汉式的...

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

    "QT_C++单例模式懒汉+饿汉.rar"是一个压缩包,包含了关于C++在QT环境下实现单例模式的实例,分为懒汉式和饿汉式两种实现方式。 首先,我们来看一下单例模式的基本原理。单例模式通常用于那些需要频繁实例化然后销毁...

    设计模式——单例模式

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

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

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

    Java设计模式之单例模式实例详解【懒汉式与饿汉式】

    例如,在上面的代码中,懒汉式单例模式的实现方式是通过使用静态变量`loon`和静态方法`getInstance()`来实现对象的实例化。 饿汉式单例模式是单例模式的一种实现方式,它的主要特点是会在类加载时创建对象实例,...

    老生常谈C++的单例模式与线程安全单例模式(懒汉/饿汉)

    本文将讨论两种常见的单例实现方式:懒汉式和饿汉式,以及它们的线程安全问题。 1. 教科书中的单例模式 经典的单例模式实现通常包括以下几个关键点: - 构造函数设为私有(private)以防止外部直接创建实例。 - ...

    设计模式经典案例之单例模式

    单例模式主要有懒汉式和饿汉式两种实现,饿汉式不会有线程安全的问题,但是提前构造对象占用了一定的资源,如果对内存要求较低的场景可以使用饿汉式实现;懒汉式应使用DCL机制来避免多线程竞争资源的问题,并且懒汉...

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

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

    几种单例模式说明(并有实例)

    单例模式通常分为懒汉式、饿汉式、登记式等几种类型。 ### 懒汉式单例模式 懒汉式单例模式是最简单的单例模式之一,它的特点是仅在首次被调用时创建实例。这种方式的优点是延迟加载,节省内存;缺点是在多线程环境...

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

    在Java中,有两种常见的实现方式:饿汉式和懒汉式。 1. **饿汉式**: 饿汉式是在类加载时就立即创建了单例对象,因此它是线程安全的。由于对象在类加载时就已经创建,所以这种方式也被称为预先加载方式。代码示例...

    设计模式之单例模式(结合工厂模式)

    单例模式的核心在于控制类的实例化过程,常见的实现方式有懒汉式、饿汉式和双重检查锁定(DCL)等。懒汉式是在类被加载时并不创建实例,而是在第一次调用getInstance方法时才创建;饿汉式则是在类加载时就创建实例,...

    Java多线程-解决单例模式中的懒汉式的线程安全问题

    ### Java多线程—解决单例模式中的懒汉式的线程安全问题 #### 一、单例设计模式的线程安全问题 ##### (1)饿汉式没有线程安全问题 **饿汉式**是一种非常典型的单例模式实现方式,其特点是在类加载时就完成了实例...

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

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

Global site tag (gtag.js) - Google Analytics