美文网首页java专题The Magnificent JavaJava学习笔记
单例模式中懒汉方式和饿汉方式解析

单例模式中懒汉方式和饿汉方式解析

作者: H_Man | 来源:发表于2017-02-05 22:32 被阅读120次

单例模式的概念:

单例模式的意思就是只有一个实例。单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。这个类称为单例类。

关键点:

1)一个类只有一个实例       这是最基本的

2)它必须自行创建这个实例

3)它必须自行向整个系统提供这个实例

----------------------------------------------------------------------------------------------------------------------------------------------------

两种实现方式:

1  懒汉模式(类加载时不初始化)

关键点:(代码注释上已给出)

1)构造函数定义为私有----不能在别的类中来获取该类的对象,只能在类自身中得到自己的对象

2)成员变量为static的,没有初始化----类加载快,但访问类的唯一实例慢,static保证在自身类中获取自身对象

3)公开访问点getInstance: public和synchronized的-----public保证对外公开,同步保证多线程时的正确性(因为类变量不是在加载时初始化的)

优缺点见代码注释。

2  饿汉式单例模式(在类加载时就完成了初始化,所以类加载较慢,但获取对象的速度快)

关键点:(代码注释已写)

1)私有构造函数

2)静态私有成员--在类加载时已初始化

3)公开访问点getInstance-----不需要同步,因为在类加载时已经初始化完毕,也不需要判断null,直接返回

相关文章

  • 单例模式的四种实现方式

    原本单纯的我一直认为这世界上的单例模式,只有饿汉和懒汉呢,今天发现了,原来单例模式有四种实现方式。 饿汉模式 懒汉...

  • Singleton Pattern

    单例分为懒汉模式和饿汉模式: 饿汉模式 ...

  • Java单例模式

    1. 实现单例模式 饿汉模式和懒汉模式单例模式根据实例化时机分为饿汉模式和懒汉模式。饿汉模式,是指不等到单例真正使...

  • Android设计模式(单例模式)

    目录 1.单例模式简介 2.单例模式关键点 3.单例模式UML图 4.单例模式的实现方式饿汉式懒汉式同步锁懒汉式D...

  • java的单例模式

    饿汉单例模式 懒汉单例模式

  • Android设计模式总结

    单例模式:饿汉单例模式://饿汉单例模式 懒汉单例模式: Double CheckLock(DCL)实现单例 Bu...

  • java设计模式之单例模式

    单例模式属于java设计模式的一种,最常见实现方式有以下几种 懒汉、饿汉、双重检查单例、静态内部类单例。 单例模式...

  • 单例模式中懒汉方式和饿汉方式解析

    单例模式的概念: 单例模式的意思就是只有一个实例。单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供...

  • 单例(Singleton)

    单例设计模式 单例模式的创建 饿汉式1 饿汉式2 懒汉式 优化后的懒汉式(线程安全): 饿汉式与懒汉式区别 单例模...

  • 单例模式Java篇

    单例设计模式- 饿汉式 单例设计模式 - 懒汉式 单例设计模式 - 懒汉式 - 多线程并发 单例设计模式 - 懒汉...

网友评论

  • 221716798db8:懒汉式这样改下怎么样?
    if(instance == null){
    synchronized(xxx.class){
    if(instance==null){
    instance=new LazySingleton();
    }
    }
    }
    手机打的。。。
    221716798db8: @H_Man 昨天去设计模式专题看了下,感觉单例模式最好的是静态内部类实现。
    H_Man:你这样写的话会导致两个线程一个在访问getInstance方法时另外一个也可以访问。是在方法的内部加的锁,另外一个线程还可以去访问没有加锁的代码。您觉得我说的有道理吗?
    H_Man:@斌2016 我先思考一下 明天给你回复
  • dong_note:懒汉那个线程安全关键字解释下,小白还不懂
    H_Man: @dong_note 没事 多多交流
    dong_note:@H_Man 谢谢您
    H_Man:@dong_note 懒汉式有线程并发访问安全问题,获取的不一定都是同一个实例

本文标题:单例模式中懒汉方式和饿汉方式解析

本文链接:https://www.haomeiwen.com/subject/xlqyittx.html