单例模式:饿汉式、懒汉式
一、单例模式
定义:一个类中的对象只能有一个,它在内存中只会创建一次对象的设计模式。
用法:在程序中如果多次用到同一个类中的方法进行操作时,在使用时就会创建多个对象。为了防止频繁创建对象造成内存资源浪费,就可以使用单例模式。
类型:饿汉式和懒汉式
二、构建过程:
1、要实现单例模式,先把构造函数私有化;【不可以从外部调到类的构造函数】
2、在public权限下定义一个函数,返回本类对象的指针;【若是普通函数,需要依赖类对象的调用】
3、设置该函数为静态函数;【静态函数没有this指针,无法访问类中普通属性】
4、设置类中的本类指针为静态属性。
三、饿汉式
饿汉式单例模式在类加载时立即初始化,并且创建单例对象,由于在线程还没出现前就实例化,因此绝对线程安全。
class Singleton {private:static Singleton *p;Singleton();public:static Singleton* getInstance() {return p;}class CG {public:~CG() {if(Singleton::p != nullptr) {delete Singleton::p;Singleton::p = nullptr;}}};
};Singleton* Singleton::p = new Singleton();Singleton* s1 = Singleton::getInstance();
四、懒汉式
懒汉式单例模式在类被加载时,没有立刻被初始化,第一次调用getInstance时,才被初始化,又称为延时加载。
static Singleton* getInstance() {if(p == nullptr) {return new Singleton();}return p;
}
Singleton* Singleton::p = nullptr;
相关文章:
单例模式:饿汉式、懒汉式
一、单例模式 定义:一个类中的对象只能有一个,它在内存中只会创建一次对象的设计模式。 用法:在程序中如果多次用到同一个类中的方法进行操作时,在使用时就会创建多个对象。为了防止频繁创建对象造成内存资源浪费,就可…...
“人间烟火”背后,长沙招商引资再出圈
连续多年,长沙荣膺全国最具幸福感城市。同时,长沙也被誉为“中部崛起的引擎城市”。长沙不仅有网红城市的人间烟火气,更以创新的精神,优质的营商环境,高效的政府服务,丰富的人才资源和深厚的产业基础&#…...
操作系统【OS】中断和异常
异常(内中断) 中断(外中断) 基本概念 由CPU执行指令内部产生的事件内中断都是不可屏蔽中断,一旦出现,就要立即处理。 由来自CPU外部的设备发出的中断请求(常用于输入输出)典型的由…...
[AutoSAR系列] 1.1 AutoSar 发展历史
AUTOSAR,全称为Automotive Open System Architecture,即汽车开放系统架构。 AutoSar 是一项开源的汽车软件标准,旨在提高汽车电子系统的互操作性和可重用性。AutoSar 成员通常是汽车制造商、电子元件制造商、软件供应商和工具供应商等公司,他们在共同开发和推进 AutoSar 标…...
【vscode编辑器插件】前端 php unity自用插件分享
文章目录 一篇一句前言前端vuegitphpunity后端其他待续完结 一篇一句 “思考是最困难的工作,这也许是为什么很少有人这样做。” - 亨利福特(Henry Ford) 前言 无论是什么语言,我都会选择使用vscode进行开发,我愿称v…...
【企业级SpringBoot单体项目模板 】—— 项目代码管理
😜作 者:是江迪呀✒️本文关键词:SpringBoot项目模版、企业级、模版、代码管理☀️每日 一言:生命力顽强的种子,从不对瘠土唱诅咒的歌。 文章目录 一、第一种:先创建仓库1.1 创建仓库1.2 clone…...
Python读取Excel文件中指定的列数并生成CSV文件
0x00 安装Pandas和OpenPyXL pip install pandaspip install openpyxl0x01 Encoding import os import pandas as pd import openpyxl from openpyxl import load_workbook import csvdef write_dict_to_csv(dict_data, fileName):df pd.DataFrame.from_dict(dict_data)# 将D…...
MySQl有哪些索引(种类)?索引特点?为什么要使用索引?
普通索引:仅加速查询唯一索引:加速查询 列值唯一(可以有null)主键索引:加速查询 列值唯一(不可以有null) 表中只有一个组合索引:多列值组成一个索引,专门用于组合搜索&…...
49数码论坛系统设计与实现
大家好✌!我是CZ淡陌。一名专注以理论为基础实战为主的技术博主,将再这里为大家分享优质的实战项目,本人在Java毕业设计领域有多年的经验,陆续会更新更多优质的Java实战项目,希望你能有所收获,少走一些弯路…...
蓝桥杯每日一题2023.10.19
题目描述 完全二叉树的权值 - 蓝桥云课 (lanqiao.cn) 题目分析 我们以每一个节点的坐标来将这一深度的权值之和相加从而算出权值和 要清楚每一个深度的其实节点和末尾节点,使用双指针将这个深度节点的权值和计算出来,记录所 需要的深度即可 #includ…...
NIO IN:技术蔚来的首次「大阅兵」
宝山,上海第一钢铁厂旧址。 上周,蔚来在这里点亮金色炉台,2500 立方米高炉,浓重的工业气质与古典凝重的光影交织,蔚来 NIO IN 用科技的进步呼应那个火红的年代。 这是蔚来第一次开科技发布会,为了全方位展…...
Android推送问题排查
针对MobPush智能推送服务在使用过程中可能出现的问题,本文为各位开发者们带来了针对MobPush安卓端推送问题的解决办法。 TCP在线推送排查 排查TCP在线收不到推送时,我们先通过客户端的RegistrationId接口获取设备的唯一标识 示例: MobPush…...
轻量级导出 Excel 标准格式
一般业务系统中都有导出到 Excel 功能,其实质就是把数据库里面一条条记录转换到 Excel 文件上。Java 常用的第三方类库有 Apache POI 和阿里巴巴开源的 EasyExcel 等。另外也有通过 Web 模板技术渲染 Excel 文件导出,这实质是 MVC 模式的延伸,…...
蓝桥杯 (年号字串 C++)
思路: 1、看成10进制转化成26进制 。 2、A表示1、B表示2。以此类推,Z表示26. 代码: #include <iostream> using namespace std; int main() {char str[10]; int sum 2019, n, i 0; while (sum > 0) {str[i] sum % 26 64;sum / …...
软件测试01
一、认识软件及测试 1、什么是软件 控制计算机硬件工作的工具 2、软件的基本组成 页面客户端------请求----->代码服务器-------请求------>数据服务器 3、软件产生过程 需求产生------->需求文档------->设计效果图------->产品开发-------->产品测试 …...
【IBIS 模型与仿真 - IBISWriter and Write_IBIS】
本文将介绍如何从用户设计中编写自定义IBIS模型。 本文是 SelectIO 解决方案中心(Xilinx 答复 50924)的设计助手部分(Xilinx 答复 50926)的一部分。 原文链接:https://support.xilinx.com/s/article/50957?languagee…...
[题] 筛质数 #质数(素数)
题目 AcWing 868. 筛质数 题解 方法一:朴素筛法 及其优化:埃氏筛 从2~n枚举 i,再从小到大枚举所有已知的质数 primes[j],筛掉合数 i*primes[j],遇到新的质数就入队 枚举所有小于n的数i,将i的所有倍数筛掉。 筛完后剩下的数就是质数。 朴素做法 void ge…...
C进阶-语言文件操作
本章重点: 什么是文件 文件名 文件类型 文件缓冲区 文件指针 文件的打开和关闭文件的顺序读写文件的随机读写文件结束的判定 1. 什么是文件 磁盘上的文件是文件。 但是在程序设计中,我们一般谈的文件有两种:程序文件、数据文件 1.1 程序文件…...
17-spring aop调用过程概述
文章目录 1.源码2. debug过程1.源码 public class TestAop {public static void main(String[] args) throws Exception {saveGeneratedCGlibProxyFiles(System.getProperty("user.dir") + "/proxy");ApplicationContext ac = new ClassPathXmlApplicatio…...
微信小程序------框架
目录 视图层 WXML 数据绑定 列表渲染 条件渲染 模板 wsx事件 逻辑层 生命周期 跳转 视图层 WXML WXML(WeiXin Markup Language)是框架设计的一套标签语言,结合基础组件、事件系统,可以构建出页面的结构。 先在我们的项目中…...
云原生智能流量代理trae-agent:动态路由、负载均衡与熔断限流实战
1. 项目概述:一个面向云原生时代的智能流量代理最近在梳理团队内部的微服务治理工具链时,又仔细研究了一下bytedance/trae-agent这个项目。它不是一个简单的反向代理,而是一个设计理念相当超前的“智能流量代理”。简单来说,它就像…...
别再瞎学AI了!这张路线图,帮你从入门到落地,少走90% 的弯路
AI时代的红利,从来不属于 “跟风学” 的人。有人学了半年 Python,还是只会写 “Hello World”;有人刷了一堆算法课,面试时连项目都拿不出手;有人跟风报了 LLM 班,学完依然不知道怎么把模型部署到服务器上……...
Docker运行AI代码为何总崩溃?揭秘沙箱隔离4大配置陷阱及3分钟修复方案
更多请点击: https://intelliparadigm.com 第一章:Docker运行AI代码崩溃现象与沙箱隔离本质剖析 当在 Docker 容器中运行 PyTorch 或 TensorFlow 训练脚本时,常出现进程静默退出、CUDA 初始化失败或 SIGSEGV 段错误——这些并非单纯代码缺陷…...
Method Draw:5分钟上手的轻量级SVG编辑器完全指南
Method Draw:5分钟上手的轻量级SVG编辑器完全指南 【免费下载链接】Method-Draw Method Draw, the SVG Editor for Method of Action 项目地址: https://gitcode.com/gh_mirrors/me/Method-Draw 你是否曾经需要快速创建一些简单的矢量图形,却不想…...
开源数据协作平台OpsKat:可视化工作流构建与自托管部署指南
1. 项目概述:一个开源的数据协作与自动化工具最近在整理团队内部的数据处理流程时,发现很多重复性的数据收集、清洗和分发工作,不仅耗时耗力,还容易出错。就在我寻找一个轻量级、可自部署的解决方案时,一个名为opskat/…...
告别PS!用Python+OpenCV实现拉普拉斯金字塔融合,5分钟搞定无缝拼接
用PythonOpenCV实现图像无缝拼接:拉普拉斯金字塔融合实战指南 当我们需要将两张照片拼接成一张全景图时,直接拼接往往会在接缝处出现明显的痕迹。传统方法可能需要依赖Photoshop等专业软件进行手动调整,但今天我们将用Python和OpenCV&#x…...
一套键鼠控制多台电脑:开源KVM软件Input Leap使用指南
一套键鼠控制多台电脑:开源KVM软件Input Leap使用指南 【免费下载链接】input-leap Open-source KVM software 项目地址: https://gitcode.com/gh_mirrors/in/input-leap 还在为桌面上多台电脑之间的键盘鼠标切换而烦恼吗?Input Leap是一款开源免…...
终极神界原罪2模组管理指南:如何快速解决模组冲突问题
终极神界原罪2模组管理指南:如何快速解决模组冲突问题 【免费下载链接】DivinityModManager A mod manager for Divinity: Original Sin - Definitive Edition. 项目地址: https://gitcode.com/gh_mirrors/di/DivinityModManager Divinity Mod Manager是一款…...
为什么ITK-SNAP能让你3倍提升医学图像分割效率:完整实战指南
为什么ITK-SNAP能让你3倍提升医学图像分割效率:完整实战指南 【免费下载链接】itksnap ITK-SNAP medical image segmentation tool 项目地址: https://gitcode.com/gh_mirrors/it/itksnap 想象一下,你是一名医学研究员或临床医生,面对…...
如何用FanControl打造完美静音的Windows电脑散热方案?
如何用FanControl打造完美静音的Windows电脑散热方案? 【免费下载链接】FanControl.Releases This is the release repository for Fan Control, a highly customizable fan controlling software for Windows. 项目地址: https://gitcode.com/GitHub_Trending/fa…...
