懒汉:在初始化类的时候,不创建唯一的实例,而是等到真正需要用到的时候才创建。必须加上同步,否则有可能依然创建多个实例。
饿汉:在初始化的时候,就创建了唯一的实例,不管是否需要用到。不需要自己加同步,一定产生唯一的实例。

饿汉模式:

饿汉:在初始化的时候,就创建了唯一的实例,不管是否需要用到。不需要自己加同步,一定产生唯一的实例。

    static class Singleton {//1.将构造方法设置成私有的private Singleton() {}//2.创建一个静态的类变量private static final Singleton singleton = new Singleton();//3.给外部提供获取单例的方法public static Singleton getInstance() {return singleton;}

懒汉模式:

懒汉:在初始化类的时候,不创建唯一的实例,而是等到真正需要用到的时候才创建。必须加上同步,否则有可能依然创建多个实例。

    public class ThreadSingleleton {static class Singleton {//1.无参构造方法private Singleton() {}//2.创建静态的类变量 用于返回参数private static volatile Singleton singleton = null;//3.给外部提供获取单例的方法public static Singleton getInstance() {//双重校验锁if(singleton == null) {synchronized (Singleton.class) {if(singleton == null) {singleton = new Singleton();}}}return singleton;}}

总结
从上面两个代码来看,由于懒汉模式下,每次获取实例都需要判断,如果使用非常频繁的时候,这种方式性能肯定有所下降。 因此懒汉模式下,不适合使用太频繁的对象。

饿汉是线程安全的,在类创建的同时就已经创建好一个静态的对象供系统使用,以后不在改变而在饿汉模式下,不管是否用到,都会初始化实例。

单例模式之懒汉与饿汉相关推荐

  1. C#单例模式的懒汉与饿汉

    ※ 单 例 模 式 单例模式是指某一类在被调用时只能创建一个实例,即只能new一次; ※  饿 汉 在每次调用的时候都先加载; ※  懒 汉 调用的时候不加载,需要用到再加载;在多线程调用时不安全; ...

  2. 【C++】设计模式------单例模式(懒汉和饿汉)

    本文参考自<大话设计模式>,想借此记录一下对书本内容的理解,并以自己项目为例子采用C++语言进行举例. 概念 单例模式,保证一个类仅有一个实例,并提供一个访问它的全局访问点.通俗点讲,在程 ...

  3. java 单例模式实现懒汉和饿汉

    java 懒汉模式: 这种方式它是在内部类里面去创建对象实例.这样的话,只要应用中不使用内部类,JVM就不会去加载这个单例类,也就不会创建单例对象,从而实现懒汉式的延迟加载.也就是说这种方式可以同时保 ...

  4. 单例模式懒汉、饿汉和登记

    转载自  JAVA设计模式之单例模式 本文继续介绍23种设计模式系列之单例模式. 概念: java中单例模式是一种常见的设计模式,单例模式的写法有好几种,这里主要介绍三种:懒汉式单例.饿汉式单例.登记 ...

  5. 【C++】单例模式(懒汉、饿汉)

    1.什么是单例模式? 顾名思义,单例模式就是在这个单例类确保只有一个对象被创建.也就是说这个类只能实例化一个对象. 特征:1.单例类最多只能有一个实例: 2.单例类必须自己创建自己唯一的实例: 3.单 ...

  6. java 单例模式 懒汉和饿汉

    单线程下的单例模式 定义: 确保一个类只有一个实例,并提供一个全局访问点. 单例代码: package wfb.pattern;public class Singleton {private stat ...

  7. 单例模式的原理/懒汉模式/饿汉模式以及不同版本的单例模式程序

    单例模式 单例模式定义 懒汉模式与饿汉模式 懒汉模式 饿汉模式 懒汉模式和饿汉模式的区别 懒汉模式的不同版本 版本一 版本二 版本三 版本四 单例模式定义 保证一个类仅有一个实例,并提供一个该实例的全 ...

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

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

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

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

最新文章

  1. 网络编程学习笔记(udp_server函数)
  2. Sun Solaris 10 bind 9.x DNS 配置
  3. java 语言章节_2020知到Java语言程序设计章节答案
  4. 就想问问你们,这种女朋友从哪里来的?
  5. 【转】图文详解YUV420数据格式
  6. 【数据结构算法】快排/归并/堆排序 c++
  7. foreman架构的引入3-安装Foreman1.5.3架构(all-in-one)
  8. 「镁客·请讲」归墟电子王景阳:以桌面小型机器人切入市场,沿着“机器人+教育”的方向前进...
  9. hp 服务器 无线网卡,惠普HP 615 无线网卡驱动
  10. java生成二维码,并在前端展示。
  11. 三相全控tc787触发电路_开关电源常用的几种保护电路
  12. 移动端开发-响应式页面
  13. MySQL--基础知识点--51--dual
  14. 树莓派64位系统bullseye如何成功安装Qt5
  15. 怎样去掉Eclipse中的Js错误提示
  16. 分析全国的教育资源,高校分布数据,发现不均衡
  17. 安卓下Kindle导入本地电子书的方法
  18. 基于SSM框架实现的影城票务管理系统【源码+数据库+运行指导视频】
  19. Worksheet对象应用大全(1)-应用基础
  20. newmark法 matlab,newmark法和wilson法求解单自由度体系加速度反应谱

热门文章

  1. 如何进行时间的加减运算
  2. html可以做题的app,开始答题.html
  3. SystemUI 人脸识别与相机冲突的整理文档
  4. 第十四届蓝桥杯(Web 应用开发)模拟赛 3 期-职业院校组题解
  5. C# winform 开发之Excel操作
  6. 英语听力练习的基本法则
  7. kettle案例——数据转换(多数据源合并)
  8. 【水晶报表内功心法】--PUSH模式样板招式
  9. 基于51单片机的8x16及8x8点阵滚动广告牌proteus仿真
  10. el-table 表格 业务标配模板;