单例设计模式

功能:保证一个类在内存中的对象唯一性。

需求:必须对于多个程序使用同一个配置信息对象时,就需要保证该对象的唯一性。

保证唯一性的方式:

1,不允许其他程序用new创建该类对象。

2,在该类创建一个本类实例。

3,对外提供一个方法让其他程序可以获取该对象。

实现步骤:

1,私有化该类构造函数。

2,通过new在本类中创建一个本类对象。

3,定义一个公有的方法,将创建的对象返回。

单例设计举例:

1. 在本类中创建该对象的实例

2. 构造函数私有化,使得构造函数只能在本类中调用

3. 静态方法返回创建的该类的实例

经过以上3步的操作,内存中只存在一个Single类的实例,即图中的0x0045

单利模式在工程中的使用:

饿汉式:

class Single{privatestatic Single s = new Single();privateSingle(){}publicstatic Single getInstance(){return s;}
}

类一加载,对象就已经存在了。

懒汉式

class Single2 {privatestatic Single2 s = null;privateSingle2(){}publicstatic Single2 getInstance(){if(s==null)s= new Single2();returns;}
}

类加载进来,没有对象,只有调用了getInstance方法时,才会创建对象。即延迟加载形式。

JavaSE学习--单例设计模式相关推荐

  1. 结合Spring源码学习单例设计模式

    之前我学习了 Spring Ioc,明白了 Spring IoC 容器是一个管理Bean的容器,在Spring的定义中,它要求所有的IoC容器都需要实现接口 BeanFactory ,它是一个顶级容器 ...

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

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

  3. Python 学习笔记 类的封装 类的继承 多态继承 类方法和静态方法 单例设计模式

    一.类的封装: 1.概念: 广义的封装:函数和类的定义本身,就是封装的体现 狭义的封装:一个类的某些属性,在使用的过程 中,不希望被外界直接访问,而是把这个属性给作为私有的[只有当前类持有],然后暴露 ...

  4. 单例设计模式(拉勾教育大数据学习笔记)

    单例设计模式的概念: 在某些特殊场合中,一个类对外提供且只提供一个对象时,这样的类叫做单例类,而设计单例的流程和思想叫做单例设计模式. 单例设计模式的实现流程: 1. 私有化构造方法,使用privat ...

  5. 多个if用什么设计模式_抽丝剥茧——单例设计模式

    单例设计模式 兄弟们好,今天是最后一个设计模式了,也是我们最熟悉的单例设计模式,可以说这个设计模式是我们最先接触到的设计模式了.想当年学习JavaSE的时候,老师聊到一个「饿汉式和懒汉式」,我还纠结了 ...

  6. 【Java】day9--main方法、单例设计模式、继承、方法重写部分知识点总结

    (一)main方法 jvm调用main方法,jvm也是一个程序     main方法详解:         public:公共  保证该类在任何情况下,jvm都对其方法可见.         stat ...

  7. Java笔记017-类变量和类方法、理解main方法语法、代码块、单例设计模式、final关键字

    目录 面向对象编程(高级部分) 类变量和类方法 类变量-提出问题 传统方法解决 问题分析: 类变量快速入门 类变量内存布局 什么是类变量 如何定义类变量定义语法: 如何访问类变量 定义语法: 类变量使 ...

  8. Java查漏补缺(08)关键字:static、单例设计模式、理解main方法、类的成员之四:代码块、final关键字、抽象类、接口、内部类、枚举类、注解、包装类

    Java查漏补缺(08)关键字:static.单例设计模式.理解main方法.类的成员之四:代码块.final关键字.抽象类.接口.内部类.枚举类.注解.包装类 本章专题与脉络 1. 关键字:stat ...

  9. python基础知识整理 第七节:单例设计模式、异常、模块、包、制作模块、文件

    1.单例设计模式 单例设计模式就是为对象在内存中分配空间的时候,永远只会返回一个唯一的固定的内存空间.这样就能保证在内存中这个类的对象只有唯一的一份,这个就叫做单例.(为对象分配空间使用的是内置方法_ ...

  10. 第三次学JAVA再学不好就吃翔(part117)--单例设计模式

    学习笔记,仅供参考,有错必纠 文章目录 多线程 单例设计模式 饿汉式 懒汉式 第三种格式 Timer类 线程的五种状态 多线程 单例设计模式 单例设计模式,即保证类在内存中只有一个对象,如何保证类在内 ...

最新文章

  1. 华为官方:寻找AI开发者!
  2. .net数据根据字段进行分类(linq语句)
  3. java的autotype,关于 fastjson 异常 autoType is not support 问题分析解决
  4. Hdu 1283 钱币兑换问题
  5. 推荐系统炼丹笔记:阿里DMIN多重兴趣网络
  6. 论文浅尝 | 变分知识图谱推理:在KG中引入变分推理框架
  7. (转)C# 根据当前时间获取,本周,本月,本季度等时间段 .Net中Exception
  8. SpringBoot默认日志配置输出级别
  9. winafl 源码分析
  10. linux 非root身份安装java_Linux非root用户安装jdk和tomcat
  11. 2017乌鲁木齐ICPC: I. A Possible Tree(带权并查集)
  12. mybatis --XML 映射配置文件
  13. 刺激战场测试fps软件,绝地求生刺激战场通过GLTools实时显示游戏帧数方法
  14. 基于HTML5+JavaScript+CSS3+PHP的网上商城电子商务购物网站设计
  15. 上海市第三届上海市青少年算法竞赛(小学组)线上同步赛 数洞洞
  16. java模板引擎 jade_jade模板引擎
  17. VAST2 0视频广告投放解决方案改变视频网站未来技术格局
  18. 编译警告:backslash and newline separated by space
  19. your cuda software stack is old.we fall back to the NIVIDIA driver for some compilation. Update your
  20. 快来看,你的盒子也能用OpenCV NPU后端啦

热门文章

  1. 图像直方图及直方图均衡总结(一)经典方法(附matlab和opencv端算法实现)
  2. CVPR2021目标检测和语义分割论文分类汇总 | 源码 |
  3. CVPR 2021|人脸属性风格解耦
  4. 第 3 讲 三维空间刚体运动
  5. 主引导扇区(MBR)释疑
  6. 寒假作业1 打印沙漏
  7. Android----获取包名和sh1
  8. springboot 使用spring security
  9. SpringMVC基础配置
  10. 消息队列状态:struct msqid_ds