単例设计模式(Singleton Pattern):
所谓类的单例设计模式,就是采取一定的方法保证在整个的软件系统中,对某个类只能存在一个对象实例,并且该类只提供一个取得其对象实例的方法。
如果我们要让类在一个虚拟机中只能产生一个对象,我们首先必须将类的构造器的访问权限设置为private,这样,就不能用new操作符在类的外部产生类的对象了,但在类内部仍可以产生该类的对象。
因为在类的外部开始还无法得到类的对象,只能调用该类的某个静态方法以返回类内部创建的对象,静态方法只能访问类中的静态成员变量,所以,指向类内部产生的该类对象的变量:也必须定义成静态的。

总结:
①.单例类只能有一个实例;
②. private Constructor(){}
③.内部创建类的对象;
④.提供public static的方法,返回类的对象;
⑤.此对象也必须声明为static;

1.所谓类的单例模式,就是采取一定的方法保证在整个的软件系统中,对某个类只能存在一个对象实例
2.如何实现?
饿汉式 vs 懒汉式
3.区分饿汉式和懒汉式
饿汉式:
优:线程安全
劣:对象加载时间过长;
懒汉式:
优:延迟对象的创建;
劣:线程不安全

饿汉式:类加载的时候,就开始初始化instance,即一上来就new;

//饿汉式
class Bank{//1.私有化类的构造器private Bank(){}//2.内部创建类的对象//4.要求此对象也必须声明为静态的private static Bank instance = new Bank();//instance实例//3.提供公共的方法,返回类的对象public static Bank getInstance(){return instance;//instance也声明成static}

懒汉式:只有调用getInstance()的时候,才会初始化单例,即什么时候用,什么时候new

//懒汉式
class SingleTonLazy{//1.私有化类的构造器private SingleTonLazy(){}//2.声明当前类对象,没有初始化private static SingleTonLazy instance = null;//3.声明public static的返回当前类对象的方法public static SingleTonLazy getInstance(){if(instance == null){//为null再实例化synchronized (SingleTonLazy.class) {if(instance == null){instance = new SingleTonLazy();}}}return instance;}
}

单例模式饿汉式/懒汉式的区别相关推荐

  1. java 单例模式 ---饿汉式懒汉式

    目录 单例设计模式 饿汉式 懒汉式 饿汉式vs懒汉式 结语 单例设计模式 所谓单例设计模式,就是采取一定的方法在整个软件系统中,对某个类只能存在一个对象实例 1.单例类只能有一个实例. 2.单例类必须 ...

  2. Singleton模式(单例模式) 饿汉式和懒汉式

    目的:整个应用中有且只有一个实例,所有指向该类型实例的引用都指向这个实例. 好比一个国家就只有一个皇帝(XXX),此时每个人叫的"皇帝"都是指叫的XXX本人; 常见单例模式类型: ...

  3. Java-Day12 面向对象的三大特征之封装、继承,单例模式(饿汉式、懒汉式)、方法重写 (覆盖)、注解 (annotation)、super关键字、对象的创建流程超详细

    目录 1. 面向对象的三大特征之封装 1.1 封装的含义 1.2 封装的目的 1.3 封装的优点 1.4 封装的实现过程 1.5 拓展知识:JavaBean 2. 面向对象的三大特征之继承 2.1 继 ...

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

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

  5. 单例模式——饿汉式和懒汉式

    单例模式:一个类只允许存在唯一的对象,并提供它的访问方式 创建思路: 1.禁止在类的外部创建对象:私有化构造函数 2.在类的内部提供唯一的对象:静态成员变量 3.提供访问唯一对象的方法:静态成员函数 ...

  6. 【学习笔记】【C++整理A】【总】单例模式-饿汉式、懒汉式;

    文章目录 一.语言分类: 三.基础A:- 函数重载.默认参数.extern "C".重复包含 1.函数重载 2.默认参数 3.extern "C" 4.防止重复 ...

  7. Java中单例模式—饿汉式和懒汉式

    所谓单例模式就是为了确保类在内存中只有一个对象,之所以会出现单例模式是因为,单例模式在系统内存中只存在一个对象,可以节约资源 目录 一.饿汉式 二.懒汉式 一.饿汉式 该方式在开发中是经常用的,因为这 ...

  8. Java中单例模式----饿汉式(HungrySingLeton)和懒汉式(LazySingLeton)

    一. 单例模式概述 单例模式(Singleton),也叫单子模式,是一种常用的设计模式.在应用这个模式时,单例对象的类必须保证只有一个实例存在.许多时候,整个系统只需要拥有一个的全局对象,这样有利于我 ...

  9. C++两种单例(饿汉式,懒汉式)

    饿汉式 #include <iostream> using namespace std;class A{ public:static A& getInstance(void){re ...

最新文章

  1. 枚举法用于逻辑问题的处理
  2. Linux系统IO分析工具之iotop常用参数介绍
  3. 炼丹笔记 | 讲讲我们的故事
  4. mysql 交集_MYSQL交集函数
  5. x86_64编译JPEG遇到Invalid configuration `x86_64-unknown-linux-gnu'
  6. 《算法竞赛进阶指南》0.5排序
  7. 使用Python配合Evernote完成每周工作安排
  8. android个人中心界面_Android 机也能用上你熟悉的浏览器插件,这些浏览器不可错过...
  9. Jni C 与 Java 互调
  10. 详解如何挑战4秒内百万级数据导入SQL Server(转)
  11. 简单打印-双排标签102*30模板设计
  12. 微信电脑版关掉截屏快捷键
  13. 教你用微信带称呼群发祝福
  14. 这是一篇假的回顾过去展望未来计划书
  15. 上货避坑指南 私域上货选品工具 无货源选品上货 采集商品详情数据API分享 详情图 sku信息
  16. 人月神话(五)未雨绸缪、干将莫邪、整体部分
  17. cmd批量文件重命名
  18. 【Java格式化输出】
  19. 为什么用IE浏览器的人越来越少?推荐这一款桌面浏览器
  20. python怎么改字体大小_如何使用python在excel中更改字体大小

热门文章

  1. Linux系统编程19:基础IO之了解Linux中的标准输入和输出以及相关的系统调用接口(如write,read等)
  2. 浅析libcurl多线程安全问题
  3. Java 获取命令行输入数据(命令行输入,Scanner类)
  4. MySql 复习SQL基础
  5. [daily] fedora用过光盘做dnf repo
  6. JQuery------实现鼠标摁下抬起时div背景色改变
  7. HttpClient中异步方法的同步调用
  8. mysql导出csv格式去除字段中的\n\r
  9. Windows Phone 7开发,进度条ProgressBar使用详解
  10. 了解VS2005为你的MFC程序做的一些事