当前位置: 首页 > news >正文

【Test】单例模式❗

文章目录

      • 1. 单例模式
      • 2. 单例模式简单示例
      • 3. 懒汉模式
      • 4. 饿汉模式
      • 5. 懒汉式和饿汉式的区别

1. 单例模式

  • 🐧定义:保证一个类仅有一个实例,并提供一个访问它的全局访问点。

  • 单例模式是一种常用的软件设计模式,在它的核心结构中只包含一个被称为单例的特殊类。通过单例模式可以保证系统中一个类只有一个实列而且该实例易于外界访问,从而方便对实例个数的控制并节约系统资源。如果希望在系统中某个类的对象只能存在一个,单例模式是最好的解决方案。

    特点:

  • 🍎单例类只有一个实列对象

  • 🍎单例类必须自己创建自己的唯一实例。

  • 🍎单例类对外提供一个可访问该单例的全局访问点。


主要解决:全局使用的类频繁地创建与销毁。
优点:避免对资源的多重占用。在内存里只有一个实例,减少内存的开销,尤其是频繁的创建和销毁实例。

2. 单例模式简单示例


// 单例模式 --- 不让用户自己创建对象
class TestA {public: // 设置为静态成员函数,可以不用创建对象直接通过类名进行访问static TestA* GetInstance() {return data;}private:// 把构造函数定为 private,目的是不让用户自己创建对象,必须把构造函数进行设为私有化TestA() {data = new TestA;}private:static TestA* data;};TestA* TestA::data = NULL;  // 静态成员变量必须在类外部单独进行定义int main()
{TestA::GetInstance();
}

3. 懒汉模式

class SingleModeLazy {private:SingleModeLazy() {cout << "执行操作: 懒汉式构造函数被调用。" << endl;}public:static SingleModeLazy* GetInstance() {if (ptrSingleModeLazy == NULL) {ptrSingleModeLazy = new SingleModeLazy();}return ptrSingleModeLazy;}private:static SingleModeLazy* ptrSingleModeLazy;};SingleModeLazy* SingleModeLazy::ptrSingleModeLazy = NULL;

4. 饿汉模式

// 饿汉式class SingleHungry {private:SingleHungry() {cout << "执行操作:饿汉构造函数被调用。" << endl;}public:static SingleHungry* GetInstance() {return ptrSingleHungry;}private:static SingleHungry* ptrSingleHungry;
};SingleHungry* SingleHungry::ptrSingleHungry = new SingleHungry;

5. 懒汉式和饿汉式的区别

  • 🍎实例创建时机
    (1)饿汉式在程序启动时就创建实例;
    (2)懒汉式在第一次使用时才创建实例;

  • 🍎资源利用
    (1)饿汉式可能会造成资源浪费,因为它不管是否使用这个实例都会创建实例;
    (2)懒汉式只有在需要时才创建实例,更加节省资源;

  • 🍎线程安全
    (1)饿汉式不需要考虑线程安全问题,因为实例在程序启动时就已经创建;
    (2)懒汉式需要考虑线程安全问题,因为多个线程可能尝试同时创建实例

  • 🍎适用场景
    (1)如果实例必须在程序启动时就可用,或者资源消耗不大,可以选择饿汉式
    (2)如果实例可能不被使用,或者资源消耗较大,希望延迟加载,可以选择懒汉式

相关文章:

【Test】单例模式❗

文章目录 1. 单例模式2. 单例模式简单示例3. 懒汉模式4. 饿汉模式5. 懒汉式和饿汉式的区别 1. 单例模式 &#x1f427;定义&#xff1a;保证一个类仅有一个实例&#xff0c;并提供一个访问它的全局访问点。 单例模式是一种常用的软件设计模式&#xff0c;在它的核心结构中只包…...

3.3 Spring Boot文件上传

在 Spring Boot 项目中实现文件上传功能&#xff0c;首先创建项目并添加依赖&#xff0c;包括 Commons IO 用于文件操作。接着&#xff0c;创建文件上传控制器 FileUploadController&#xff0c;定义上传目录并实现文件上传逻辑&#xff0c;通过生成唯一文件名避免文件冲突。创…...

【玩泰山派】7、玩linux桌面环境xfce - (4)使用gstreamer

文章目录 前言gstreamergstreamer概述基本概念主要功能应用场景开发方式 安装gstreamer使用gstreamer使用gstreamer播放视频 前言 玩一下gstreamer&#xff0c;使用gstreamer去播放下音视频 gstreamer gstreamer概述 GStreamer是一个用于构建多媒体应用程序的开源库和框架&…...

cpu性能统计

cpu负载 top中avg&#xff0c;/proc/loadavg, 包括cpu密集型任务io型任务 统计流程 每cpu scheduler_tick ----calc_global_load_tick &#xff1a; 当前瞬时 cpu::this_rq:: nr_runningnr_inunterrupt->calc_load_tasks(全局变量) 全局 do_timer ----calc_global_load&a…...

Java对接企业微信实战笔记

Java对接企业微信实战笔记 微信开发文档 有关企业微信的服务商的一些配置参考企业微信创建的服务商配置信息 一 流程图 只要企业安装应用后&#xff0c;就可以获取到企业的信息 二 创建应用获取suite_ticket 1.创建应用 微信开发平台得是服务商角色才能进入服务商后台创建一…...

HashMap的源码解析

HashMap基于哈希表的Map接口实现&#xff0c;是以key-value存储形式存在&#xff0c;即主要用来存放键值对。HashMap的实现不是同步的&#xff0c;这意味着它不是线程安全的。它的key、value都可以为null。此外&#xff0c;HashMap中的映射不是有序的。 JDK1.8 之前 HashMap由数…...

【金仓数据库征文】金仓数据库KingbaseES:在技术与人文交织中开拓信创未来

&#x1f381;个人主页&#xff1a;User_芊芊君子 &#x1f389;欢迎大家点赞&#x1f44d;评论&#x1f4dd;收藏⭐文章 &#x1f50d;系列专栏&#xff1a;AI 【引言】 在信息技术应用创新&#xff08;信创&#xff09;的浪潮下&#xff0c;数据库作为数字经济的基石&#xf…...

【AI】[特殊字符]生产规模的向量数据库 Pinecone 使用指南

一、Pinecone 的介绍 Pinecone是一个完全托管的向量数据库服务&#xff0c;专为大规模机器学习应用设计。它允许开发者轻松存储、搜索和管理高维向量数据&#xff0c;为推荐系统、语义搜索、异常检测等应用提供强大的基础设施支持。 1.1 Pinecone的核心特性 1. 高性能向量搜…...

OpenHarmony之电源模式定制开发指导

OpenHarmony之电源模式定制开发指导 概述 简介 OpenHarmony默认提供了电源模式&#xff08;如正常模式、性能模式、省电模式、极致省电模式&#xff09;的特性。但由于不同产品的部件存在差异&#xff0c;导致在同样场景下电源模式的配置需要也存在差异&#xff0c;为此&…...

Jsp技术入门指南【十】IDEA 开发环境下实现 MySQL 数据在 JSP 页面的可视化展示,实现前后端交互

Jsp技术入门指南【十】IDEA 开发环境下实现 MySQL 数据在 JSP 页面的可视化展示&#xff0c;实现前后端交互 前言一、JDBC 核心接口和类&#xff1a;数据库连接的“工具箱”1. 常用的 2 个“关键类”2. 必须掌握的 5 个“核心接口” 二、创建 JDBC 程序的步骤1. 第一步&#xf…...

JDBC之ORM思想及SQL注入

目录 一. ORM编程思想 1. 简介 2. 实操ORM思想 a. Students实体类 b. ORM映射 二. SQL注入 1. 简介 2. 解决SQL注入 三. 总结 前言 本文来讲解ORM编程思想和SQL注入&#xff0c;旨在帮助大家更容易的理解和掌握 个人主页&#xff1a;艺杯羹 系列专栏&#xff1a;JDBC …...

UniApp学习笔记

在uniapp中使用View标签来代替div标签&#xff0c;使用rpx来取代px&#xff0c;rpx动态适配屏幕宽度750rpx100vw H5端不支持*的css选择器 body的元素选择器请改为page div和ul和li等改为view、 span和font改为text a改为navigator img改为image scoped:非H5端默认并未启…...

统计术语学习

基期、现期 作为对比参照的时期称为基期&#xff0c;而相对于基期的称为现期。 描述具体数值时我们称之为基期量和现期量。 【例 1】2017 年比 2016 年第三产业 GDP 增长 6.8%&#xff0c; &#xff08;2016&#xff09;为基期&#xff0c;&#xff08;2017&#xff09; 为现…...

认识 Linux 内存构成:Linux 内存调优之页表、TLB、缺页异常、大页认知

写在前面 博文内容涉及 Linux 内存中 多级页表,缺页异常,TLB,以及大页相关基本认知理解不足小伙伴帮忙指正对每个人而言,真正的职责只有一个:找到自我。然后在心中坚守其一生,全心全意,永不停息。所有其它的路都是不完整的,是人的逃避方式,是对大众理想的懦弱回归,是…...

Java File 类的常用方法详解

Java File 类的常用方法详解 File 类是 Java 中用于操作文件和目录的核心类&#xff0c;位于 java.io 包。它提供了丰富的方法来管理文件系统&#xff0c;包括创建、删除、重命名、查询属性、遍历目录等操作。 1. 构造方法 File 类提供多种构造方法&#xff0c;用于创建文件或…...

【AIGC】基础篇:VS Code 配置 Python 命令行参数调试debug超详细教程

文章目录 前言一、安装必要的扩展二、安装 debugpy三、创建 launch.json 配置文件四、配置调试环境五、开始调试六、命令行调试七、远程调试八、调试技巧九、常见问题及解决方法 前言 在 Python 开发过程中&#xff0c;调试是必不可少的环节。VS Code 提供了强大的调试功能&am…...

【金仓数据库征文】金仓数据库KingbaseES:千行百业国产化征程中的璀璨之星

&#x1f381;个人主页&#xff1a;User_芊芊君子 &#x1f389;欢迎大家点赞&#x1f44d;评论&#x1f4dd;收藏⭐文章 &#x1f50d;系列专栏&#xff1a;AI 【引言】 在数字化转型浪潮奔涌向前的时代&#xff0c;数据库作为数据存储与管理的核心枢纽&#xff0c;其重要性不…...

Linux进程学习【基本认知】

&#x1f33c;&#x1f33c;前言&#xff1a;前言理解冯诺依曼体系结构与操作系统原理 在计算机科学的基础理论中&#xff0c;冯诺依曼体系结构和操作系统是两个关键概念&#xff0c;它们共同构成了现代计算机的运行基础。本文将从这两个方面入手&#xff0c;简要讲解它们的基本…...

电子工厂POE交换机端口数量选择与部署策略

引言 在电子工厂的智能化升级过程中&#xff0c;POE&#xff08;Power over Ethernet&#xff09;交换机凭借其“供电数据传输”一体化功能&#xff0c;成为构建工业物联网的核心设备。与传统工业交换机相比&#xff0c;POE交换机通过单根网线实现设备供电与数据交互&#xff…...

Codeforces Round 1020 (Div. 3) A-D

A. Dr. TC https://codeforces.com/contest/2106/problem/A 题目大意&#xff1a; 对输入字符串每个位置字符依次翻转&#xff08;1->0 , 0->1) 比如: 101 001 翻转位置1 111 2 100 3 题解&#xff1a; 观察数学特征&#xff1a;ansn…...

电子病历高质量语料库构建方法与架构项目(提示词设计篇)

电子病历人工智能提示词工程是医疗AI应用中的关键技术环节,它直接影响大语言模型在医疗场景下的输出质量和可靠性。随着大语言模型在电子病历生成、质控、数据提取等领域的广泛应用,如何通过编程实现高效、精准的提示词工程成为医疗信息化建设的重要课题。本文将系统介绍电子…...

蓝桥杯 4. 卡片换位

卡片换位 原题目链接 题目描述 你玩过华容道的游戏吗&#xff1f; 这是一个类似的&#xff0c;但更简单的游戏。 看下面的 3 2 格子&#xff1a; --------- | A | * | * | --------- | B | | * | ---------在其中放置了 5 张牌&#xff0c;其中&#xff1a; A 表示关…...

用python进行OCR识别

原文链接&#xff1a;https://www.bilibili.com/opus/1036675560501149699 我担心原作者删除&#xff0c;所以重新拷贝了一遍 1.下载tesseract 链接&#xff1a;https://github.com/UB-Mannheim/tesseract/wiki 这里示例安装最新版本 点击下载tesseract安装包 2.安装tess…...

【大语言模型】大语言模型(LLMs)在工业缺陷检测领域的应用

大语言模型&#xff08;LLMs&#xff09;在工业缺陷检测领域的应用场景正在快速扩展&#xff0c;结合其多模态理解、文本生成和逻辑推理能力&#xff0c;为传统检测方法提供了新的技术路径。以下是该领域的主要应用场景及相关技术进展&#xff1a; 1. 多模态缺陷检测与解释 视…...

202531读书笔记|《天上大风:良宽俳句·短歌·汉诗400》——我别无他物款待君,除了山中冬日寂寥,陶然共一醉,不知是与非,一饱百情足,一酣万事休

202531读书笔记|《天上大风&#xff1a;良宽俳句短歌汉诗400》——我别无他物款待君&#xff0c;除了山中冬日寂寥&#xff0c;陶然共一醉&#xff0c;不知是与非&#xff0c;一饱百情足&#xff0c;一酣万事休 《天上大风&#xff1a;良宽俳句短歌汉诗400》良宽是公认与松尾芭…...

HTMLCSS模板实现水滴动画效果

.container 类&#xff1a;定义了页面的容器样式。 display: flex&#xff1a;使容器成为弹性容器&#xff0c;方便对其子元素进行布局。justify-content: center 和 align-items: center&#xff1a;分别使子元素在水平和垂直方向上居中对齐。min-height: 100vh&#xff1a;设…...

Python爬虫(5)静态页面抓取实战:requests库请求头配置与反反爬策略详解

目录 一、背景与需求‌二、静态页面抓取的核心流程‌三、requests库基础与请求头配置‌3.1 安装与基本请求3.2 请求头核心参数解析‌3.3 自定义请求头实战 四、实战案例&#xff1a;抓取豆瓣读书Top250‌1. 目标‌2. 代码实现3. 技术要点‌ 五、高阶技巧与反反爬策略‌5.1 动态…...

电子病历高质量语料库构建方法与架构项目(数据遗忘篇)

引言 在人工智能与医疗健康的深度融合时代,医疗数据的价值与风险并存。跨机构和平台的医疗数据共享对于推动医学研究、提高诊断精度和实现个性化治疗至关重要,但同时也带来了前所未有的隐私挑战。先进的AI技术可以从理论上去标识化的医疗扫描中重新识别个人身份,例如从MRI数…...

需求开发向设计规划的转化-从需求到设计和编码

需求和设计之间存在差别&#xff0c;但尽量使你的规格说明的具体实现无倾向性。理想情况是&#xff1a;在设计上的考虑不应该歪曲对预期系统的描述&#xff08; Jackson 1995&#xff09;。需求开发和规格说明应该强调对预期系统外部行为的理解和描述。让设计者和开发者参与需求…...

browser-use:AI驱动的浏览器自动化工具使用指南

AI驱动浏览器自动化 browser-use下载项目创建Python环境安装依赖配置环境运行WebUI简单使用Deep Research使用本地浏览器免登录 browser-use browser-use是一个基于 Python 的开源库&#xff0c;旨在简化 AI 代理与浏览器之间的交互。它将先进的AI功能与强大的浏览器自动化功能…...

Java从入门到“放弃”(精通)之旅——JavaSE终篇(异常)

Java从入门到“放弃”&#xff08;精通&#xff09;之旅&#x1f680;——JavaSE终篇&#xff08;异常&#xff09; 一、异常的概念与体系结构 1.1 什么是异常&#xff1f; 在生活中&#xff0c;当一个人表情痛苦时&#xff0c;我们可能会关心地问&#xff1a;"你是不是生…...

TCP协议理解

文章目录 TCP协议理解理论基础TCP首部结构图示字段逐项解析 TCP是面向连接&#xff08;Connection-Oriented&#xff09;面向连接的核心表现TCP 面向连接的核心特性TCP 与UDP对比 TCP是一个可靠的(reliable)序号与确认机制&#xff08;Sequencing & Acknowledgment&#xf…...

NS3-虚拟网络与物理网络的交互-1 仿真概述

NS3-虚拟网络与物理网络的交互-1 仿真概述 目录 1. 仿真概述1.1 Testbed 仿真示例-FdNetDevice1.2 模拟通道示例-TapDevice 1. 仿真概述 NS-3 专为集成到 TestBed 和虚拟机中而设计 环境。我们通过提供两种网络设备来满足这一需求。 第一种设备是文件描述符 net 设备 &#x…...

晶振老化:不可忽视的隐患与预防策略

在电子设备的世界里&#xff0c;晶振如同精准的时钟&#xff0c;为电路系统提供稳定的频率信号。然而&#xff0c;随着时间推移&#xff0c;晶振会不可避免地出现老化现象。这个看似细微的变化&#xff0c;却可能引发设备性能下降、数据传输错误等一系列问题。晶振老化究竟藏着…...

企业为何要禁止“片断引用开源软件代码”?一文看透!

开篇故事&#xff1a;一段“开源代码”引发的百亿级灾难 某电商平台为快速上线新功能&#xff0c;从GitHub复制了一段“高性能加密算法”代码到支付系统中。 半年后&#xff0c;黑客通过该代码中的隐藏后门&#xff0c;盗取百万用户信用卡信息。 事后调查&#xff1a;这段代…...

测试模版x

本篇技术博文摘要 &#x1f31f; 引言 &#x1f4d8; 在这个变幻莫测、快速发展的技术时代&#xff0c;与时俱进是每个IT工程师的必修课。我是盛透侧视攻城狮&#xff0c;一名什么都会一丢丢的网络安全工程师&#xff0c;也是众多技术社区的活跃成员以及多家大厂官方认可人员&a…...

deepseek-r1-671B满血版,全栈式智能创作平台 - 多模态大模型赋能未来创作

引领AI创作新纪元 比象AI全栈式智能创作平台是基于全球领先的多模态大模型技术构建的新一代AI创作引擎&#xff0c;集成了前沿的BeyondLM-7B认知计算框架、BeyondDiffusion-XL视觉生成系统和BeyondSynth音视频合成技术&#xff0c;打造从内容构思到成品输出的完整智能创作闭环…...

Promethues 普罗米修斯

Prometheus 并非传统意义上的数据库&#xff0c;而是一个开源的系统监控和报警工具包&#xff0c;但它的核心组件之一是时间序列数据库&#xff0c;用于存储监控指标数据。以下是对 Prometheus 及其时间序列数据库功能的详细介绍&#xff1a; 1. Prometheus 概述 目标定位&a…...

Web 服务架构与技术组件概述

目录 web服务流程图 Web 服务流程图描述了客户端与服务器之间的交互。首先&#xff0c;用户通过浏览器发送请求到 Web 服务器。如果请求的是静态资源&#xff08;如 HTML、CSS、图片&#xff09;&#xff0c;Web 服务器直接返回响应&#xff1b;如果是动态资源&#xff0c;We…...

华硕NUC产品闪耀第31届中国国际广播电视信息网络展览会

2025年4月22日&#xff0c;第31届中国国际广播电视信息网络展览会在北京国家会议中心盛大开幕。作为一年一度的行业盛会&#xff0c;展会汇聚了来自全球各地的顶尖技术与设备厂商。在这片科技与创新交织的海洋中&#xff0c;华硕NUC以其卓越性能、小巧体积和创新技术十分引人注…...

Matplotlib高阶技术全景解析(续):动态交互、三维可视化与性能优化

目录 ​编辑 一、动态可视化&#xff1a;实时数据流与动画生成 1. 实时数据流可视化 2. 复杂动画控制 二、三维可视化&#xff1a;科学计算与工程建模 1. 基础三维绘图 2. 高级三维渲染优化 三、交互式可视化&#xff1a;GUI集成与Web部署 1. Tkinter/PyQt嵌入式开发 …...

[DDD传灯录]禅师:这,就是领域驱动设计(01-02)

用《软件方法》引领AI全流程开发-5月12-14日第3期 领域驱动设计是革命性的创造&#xff0c;是划时代的洞见&#xff0c;是解决业务领域用户需求技术系统功能逻辑架构分析设计复杂性的敏捷精益方法学。 这一切的根源&#xff0c;归结于领域驱动设计蕴含丰富的佛学思想。佛学是所…...

0基础 | Proteus仿真 | 51单片机 | 继电器

继电器---RELAY 本次选择一款5v一路继电器进行讲解 信号输入 IN1输入高电平&#xff0c;三极管导通&#xff0c;LED1点亮&#xff0c;电磁铁12接通吸引3向下与4接通&#xff0c;J1A的12接通 IN1输入低电平&#xff0c;则J1A的23接通 产品引脚定义及功能 序号 引脚符号 引脚…...

鸿蒙应用开发证书考试的一点想法

一、介绍&#xff1a; 直接上图 二、体验后的想法&#xff1a; 1.知识点在指南API参考最佳实践里面找 2.没有明确说明考试不能查第1点的文档&#xff0c;但是考试只有1个小时&#xff0c;合理分配时间 3.切屏三次后自动提交要注意&#xff0c;每月3次机会下月又有3次机会&a…...

MiniMind模型的web交互功能初试

MiniMind模型的web交互功能初试 一、前言 MiniMind提供了基于streamlit的web交互功能&#xff0c;能够即时切换模型和修改相关参数&#xff0c;经初步测试&#xff0c;具有比较好的体验感。本文介绍了使用MiniMind使用web交互功能的方法&#xff0c;并对使用中出现的问题给出…...

手把手玩转 JSON:快递包裹式思维拆箱装箱,Python / Java / Scala 全景实战指南

在日常开发中&#xff0c;JSON 就像全栈程序员口袋里那把万用螺丝刀——既轻便又几乎无处不在。本文面向初学者和中级读者&#xff0c;用“快递包裹”与“便签盒子”的比喻&#xff0c;结合 Python / Java / Scala 三语种示例&#xff0c;带你从概念、语法到实战全面掌握 JSON。…...

HFSS5(李明洋)——设置激励(波端口激励)

Magnetic是适用于铁磁氧导体的,只有前三种激励类型可以用于计算S参数 1波端口激励 也可以设置在模型内部,如果是设置在模型内部必须加一段理想导体,用于指定端口方向 1.1——模式 number 输入N:计算1-N的模式都计算 1.2——模式校准 计算端口特征阻抗有三种方式:Zpi、…...

NVIDIA --- 端到端自动驾驶

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、传统驾驶模型二、NVIDIA的端到端驾驶模型1.基本模型2.自查讯向量3.通用框架 总结 前言 端到端自动驾驶指的是系统接收来自摄像头雷达和激光雷达的原始传感…...

日语学习-日语知识点小记-构建基础-JLPT-N4阶段(11): てあります。

日语学习-日语知识点小记-构建基础-JLPT-N4阶段&#xff08;11&#xff09;&#xff1a; てあります。 1、前言&#xff08;1&#xff09;情况说明&#xff08;2&#xff09;工程师的信仰 2、知识点&#xff08;1&#xff09;てあります。&#xff08;&#xff12;&#xff09;…...

【前端】如何检查内存泄漏

在实际的场景中&#xff0c;如果观察到内存持续出现峰值&#xff0c;并且内存消耗一直没有减少&#xff0c;那可能存在内存泄漏。 使用 Chrome DevTools 来识别内存图和一些内存泄漏&#xff0c;我们需要关注以下两个方面&#xff1a; ● 使用性能分析器可视化内存消耗&#xf…...