单例设计模式

  1. 所谓类的单例设计模式,就是采取一定的方法保证在整个的软件系统中,对某个类只能存在一个对象实例,并且该类只提提供一个取得其对象实例的方法

  2. 单例模式有两种方式: 饿汉式 懒汉式

饿汉式

  1. 构造器私有化 (防止直接 new 一个新对象)

  2. 类的内部创建对象

  3. 向外提供一个静态的公共方法

public class ?{public static void mian(String[]args){// 通过方法可以获取对象girlfriend Instance=girlfriend.getInstance();System.out.println(Instance);System.out.println(girlfriend.i);  // 调用了静态i ,创建了对象,但可能没有使用,造成资源的浪费  即 饿汉式模式}
}
​
class   girlfriend{private String name;private static int i=100;// 为了能够在静态方法中,调用,返回gf对象,需要将其修饰为静态对象private static girlfriend gf=new girl friend("某某某");     // 类中创建对象private girlfrind(String name){   // 构造器私有this.name=name;}public static girlfriend getInstance(){   // 向外的静态公共方法return gf;}
}

懒汉式

懒汉式: 只有当用户使用getInstance时,才返回cat对象,然后再次调用时,会返回上次创建的cat对象

从而保证了单例

main {System.out.println(Cat.n1);    //   不使用就不创建对象Cat instance=Cat.geiInstance(); // 使用就创建对象  且再次调用还是上次创建的cat对象System.out.println(instance);
}
​
class  Cat{private String name;public static int n1=100;private static Cat cat; // 默认 为nullprivate Cat(String name){this.name=name;}public static Cat getInstance(){if(cat==null){cat=new Cat("英短蓝猫");}return  cat;}
}

饿汉式和懒汉式的区别

  1. 二者最主要的区别在于 创建对象的时机不同: 饿汉式 是在类加载就创建了对象实例,而懒汉式是在是使用时创建

  2. 饿汉式 不存在线程安全问题,懒汉式 存在线程安全问题。

  3. 饿汉式 存在浪费资源的可能。因为如果程序员一个对象实例都没有使用,那么饿汉式创建的对象就浪费了。

  4. 懒汉式是使用时才创建,就不存在这个问题。

  5. 在javaSE标准类中,java.long.Runtime 就是经典的单例模式


 望大家多多点赞评论支持下 谢谢

饿汉式 and 懒汉式相关推荐

  1. java饿汉式有啥作用,Java面试 - 什么是单例设计模式,为什么要使用单例设计模式,如何实现单例设计模式(饿汉式和懒汉式)?...

    什么是单例设计模式? 单例设计模式就是一种控制实例化对象个数的设计模式. 为什么要使用单例设计模式? 使用单例设计模式可以节省内存空间,提高性能.因为很多情况下,有些类是不需要重复产生对象的.如果重复 ...

  2. java学习之单例模式(饿汉式与懒汉式)

    ---恢复内容开始--- 设计模式:解决某一类问题最行之有效的方法 java中有23种设计模式 今天学习其中一种:单例设计模式:解决一个类在内存只存在一个对象 想要保证对象唯一. 1.为了避免其他程序 ...

  3. 单例模式(饿汉式和懒汉式)

    以前学习单例的时候,只理解了简单部分.这次看DRP,对单例的饿汉式和懒汉式有了一些认识和对比. 在实际的开发中,有些地方需要一个类只有一个实例.比如:网站在线人数的计数器,再比如IDE中的工具箱之类的 ...

  4. Java实现单例模式之饿汉式、懒汉式、枚举式,带测试。

    Java实现单例的3种普遍的模式,饿汉式.懒汉式.枚举式. 具体代码如下: package com.lcx.mode;/*** * 饿汉式单例,不管以后用不用这个对象,我们一开始就创建这个对象的实例, ...

  5. 单例设计模式(饿汉式VS懒汉式)

    什么是单例模式 单例(单个的实例) 1.所谓单例设计模式,就是采取一定的方法保证在整个的软件系统中,对某个类只能存在一个对象实例,并且该类只提供一个取得其对象实例的方法 2.单例设计模式有两种方式:饿 ...

  6. 23种设计模式:单例设计模式(饿汉式 VS 懒汉式)

    23种设计模式:单例设计模式(饿汉式 VS 懒汉式) 每博一文案 世事浮沉,有太多的责任需要我们担当,生活中总有些挫折和磨难,让我们觉得快要杠不住了. 但当我们咬牙坚持过那段难熬的时光后,发现并没有想 ...

  7. 【无标题】单例模式的两种创建方式:饿汉式和懒汉式

    这里写自定义目录标题 单例模式的两种创建方式:饿汉式和懒汉式 欢迎使用Markdown编辑器 新的改变 功能快捷键 合理的创建标题,有助于目录的生成 如何改变文本的样式 插入链接与图片 如何插入一段漂 ...

  8. C++常用设计模式:单例设计模式(饿汉式、懒汉式)

    一.单例模式的设计套路: 思考:如何绕过常规的构造函数,提供一种机制来保证一个类只有一个实例. 1. 铺垫:静态成员函数特性的总结 使用static关键字修饰类成员函数时,就是把这个成员函数升级成了全 ...

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

    单例模式饿汉式与懒汉式详解 步骤: 私有构造方法,使得在类的外部不能调用此方法,限制产生多个对象 类初始化时,区分饿汉式与懒汉式的区别 对外部提供调用方法,将创建的对象返回,只能通过类来调用 饿汉式: ...

最新文章

  1. java 国际化例子_JavaSE 国际化 简单例子
  2. django项目实战(2)-数据库配置
  3. 对AI领域的会议的评点
  4. STL算法中函数对象和谓词
  5. 大型架构服务器要几台
  6. Redis基础知识之————如何处理客户端连接
  7. 红歌合唱之团结就是力量
  8. 雨滴桌面rainmeter素材_win10 桌面如何做到清爽好看?这篇教程给你答案
  9. 前端学习(705):do-while
  10. 特征值分解、奇异值分解、PCA概念整理(转载)
  11. 异常处理、集合框架和反射
  12. 计算机基础知识187,中职计算机基础 (187)(11页)-原创力文档
  13. Could not find the required component ‘tf2_geometry_msgs‘. The following CMake error indicates that
  14. Flutter — 实现验证码倒计时功能
  15. 信用评分卡 (part 4 of 7)
  16. PID算法理解和代码以及PID调参
  17. C语言:cJSON库用法详解
  18. Photoshop技巧:[2]如何抠头发?
  19. 下取整函数的含义_向上取整⌈⌉和向下取整⌊⌋符号含义及应用
  20. 时序分析基础(1)----寄存器时序分析模型

热门文章

  1. 【转载】导航定位技术方案
  2. rust各地辐射值_辐射率表
  3. VirtualBox 安装MAC系统 10.15
  4. TCP三次握手中,为什么需要第三次握手?
  5. Convention插件-content
  6. nanoid 随即生成id
  7. 彩灯控制器课程设计vhdl_vhdl语言设计一个8路彩灯控制器
  8. 英语的加减乘除怎么计算机,英语加减乘除运算的表示方法
  9. 得胜20周年重拳出击,全省狂销1.5亿
  10. 面向对象是什么鬼(OOP)