单例设计模式

保证一个类在内存中只能有一个对象。

思路:

1)如果其他程序能够随意用 new 创建该类对象,那么就无法控制个数。因此,不让其他程序用 new 创建该类的对象。

2)既然不让其他程序 new 该类对象,那么该类在自己内部就要创建一个对象,否则该类就永远无法创建对象了。

3)该类将创建的对象对外(整个系统)提供,让其他程序获取并使用。

饿汉式:

一上来我就把对象给你 new 好了,你来了直接就可以拿去“吃”了

懒汉式

(要是有人问单例的延迟加载方式指的就是这种方式)

一开始我就不给你 new 对象,你来找我,我在给你创建一个对象

懒汉式有一个缺点,就是在多线程中使用的时候,可能会创建多个实例对象,比如,线程1来调用 getInstance() 方法,判断了 s==null,然后线程1由于未知的原因阻塞了,线程2再来调用 getInstance() 方法,判断 s==null ,线程2就创建了一个对象,这时候线程1又运行了,那么线程1就会创建一个对象~这样就会造成多个对象~

懒汉式的线程优化——加一个锁

饿汉式和懒汉式的区别:

1)饿汉式是空间换时间,懒汉式是空间换时间。

2)在多线程访问的时候,懒汉式可能会创建多个对象,而饿汉式不会。

java 单例 饿汉式_Java-单例设计模式(懒汉与饿汉)相关推荐

  1. java中顺式和链式_Java单链表顺序和链式实现(数据结构五)

    1.迭代器实现 package com.zhaochao; public interface Iterator { boolean hasNext(); E next(); boolean delet ...

  2. JavaSE面向对象:继承、多态、Super、Object类、重写、static、final、静态成员、懒汉式、饿汉式、单例设计模式、初始化块、抽象类、抽象方法、接口

    感谢尚硅谷免费提供的视频 继承 ** 理解 ** 生活中的继承:子女继承了父母的财产或相貌或才华 java中的继承:一个类不用自己定义属性或方法,就已经具备了另一个类的属性和方法 把这种现象称为jav ...

  3. 设计模式 懒汉和饿汉

    懒汉和饿汉模式主要涉及是一个问题, 就是这个对象是我送过去给你,还是你自己来拿. 差别: 饿汉模式下,初始化已经调用了构造方法,直接得到了对象. 懒汉模式下的初始化没有得到对象,因此需要调用方法得到. ...

  4. java文件端点续传效果图_Java单依赖性Dockerized HTTP端点

    java文件端点续传效果图 在本文中,我们将创建一个基于Java的HTTP端点,使用它创建一个可执行jar,将其打包在Docker中并立即在本地运行. 本文面向初学者,他们想要寻找一个简单的演练来在D ...

  5. java单例设计模式懒汉_Java设计模式之单例设计模式(懒汉、饿汉)

    [toc] Java设计模式之单例设计模式(懒汉.饿汉) 相信面试过的初中级Java开发的朋友可能都有遇到过单例设计模式的笔试题吧,如果之前没有背下来或者不理解,可以看看下面这篇文章,应该足够应付笔试 ...

  6. 单例测试模式中【饿汉式】与【懒汉式】的区别

    package day25.thread;/** /*** @author Mr Chen* @create 2018-10-09 18:37* 单例测试模式:保证类在内存中只有一个对象*/ publ ...

  7. c++实现单例类(懒汉与饿汉)

    教科书里的单例模式 我们都很清楚一个简单的单例模式该怎样去实现:构造函数声明为private或protect防止被外部函数实例化,内部保存一个private static的类指针保存唯一的实例,实例的 ...

  8. Java单例模式--------懒汉式和饿汉式

    Java单例模式--------懒汉式和饿汉式 单件模式用途: 单件模式属于工厂模式的特例,只是它不需要输入参数并且始终返回同一对象的引用. 单件模式能够保证某一类型对象在系统中的唯一性,即某类在系统 ...

  9. 饿汉式单例模式与懒汉式单例模式

    饿汉式单例模式 GiantDragon 应该只有一只,通过私有化其构造方法,使得外部无法通过new 得到新的实例. GiantDragon 提供了一个public static的getInstance ...

最新文章

  1. hdu - 4707 - Pet
  2. 7-30 字符串的冒泡排序 (C语言)
  3. pandas dataframe 做机器学习训练数据=》直接使用iloc或者as_matrix即可
  4. 产品需求文档的10步
  5. 英语采访问题之:你每天上班的动机是什么?
  6. 广数系统加工中心编程_数控铣床与数控加工中心操作与编程
  7. 家用电器插头插座外壳防冲击等级试验——IK摆锤冲击试验装置
  8. 蓝桥杯「鲁卡斯队列」
  9. 汉医健康:“互联网+医疗健康”让患者更有“医”靠
  10. 网络架构、云平台和微信公众平台开发接入
  11. 2020web前端学习路线(附全套前端视频教程+教学大纲
  12. 美国大力发展量子产业,国会直接指定能源部制定量子系统访问路线图
  13. error lnk1123:转换到coff期间失败
  14. WP Mail SMTP配置谷歌邮箱
  15. 程序员又背锅了!虾米音乐代码注释惊现“穷逼vip”
  16. 你见过最奇葩的代码提交信息是什么?别再为写commit message头疼了!
  17. 《NK细胞培养扩增解决方案》
  18. C2C、B2B、B2C这些名词都是一些什么意思
  19. 【智能客服】聊天机器人营销的好处是什么?
  20. 用Python爬虫技术怎么挣点小钱,这四种方法可行

热门文章

  1. vba xml 怎么设置父节点_熊二做了一个xml报文处理的开源库easyxml
  2. python 字符串截取_Python 字符串操作实现代码(截取/替换/查找/分割)
  3. 服务器测试文件怎么创建,如何创建一个“FTPS”模拟服务器以单元测试Java中的文件传输...
  4. 手机进程设置多少个最好_安卓手机难逃卡顿宿命?打开4个系统设置,秒变新机般流畅...
  5. ZDB5304烧写方法
  6. mysql 表上限_mysql 数据库表的上限
  7. nginx指定配置文件启动_NGINX安全加固手册
  8. redis storm mysql_storm-redis 详解
  9. 【转】ABP源码分析二十四:Notification
  10. 4.Dynamics CRM 数据数量限制更改