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

【设计模式】单例模式

什么是单例模式?

保证一个类仅有一个实例,并提供一个访问它的全局访问点
在这里插入图片描述

单例模式的应用场景

1.整个程序的运行中只允许有一个类的实例;

2.需要频繁实例化然后销毁的对象。

3.创建对象时耗时过多或者耗资源过多,但又经常用到的对象。

4.方便资源相互通信的环境

饿汉式与懒汉式

饿汉式

在程序创建的时候就进行初始化,并且对象唯一。

代码

public class SuperTeacher {private static SuperTeacher superTeacher = new SuperTeacher();private SuperTeacher(){}public static SuperTeacher getInstance(){return superTeacher;}
}

注释

在这里插入图片描述

懒汉式

需要时才创建于堆中,多线程情况下不能保证唯一性。

代码

public class SuperStudent {private static SuperStudent instance;private SuperStudent(){}public static SuperStudent  getInstance(){if(null == instance){instance = new SuperStudent();}return instance;}
}

注释

在这里插入图片描述

多线程情景下:

在多线程情景下,只能使用饿汉式,因为程序加载就实例化了一个对象。不想懒汉式,别人调用了getInstance方法,再实例化对象。无法保证对象的唯一性。
当然了,我们可以给懒汉式加锁以保证其唯一性。(使用synchronized修饰公有方法即可)
在这里插入图片描述

单例模式的优缺点

优点:

  1. 对频繁访问又销毁的对象,单例模式保证了对象的唯一性。减少了系统的性能损耗。
  2. 保证全局唯一对象。
  3. 允许全局访问。
  4. 允许可变数目的实例。

缺点:

  1. 扩展性很差。
  2. 符合的场景有限。
  3. 如果实例化的对象长时间不被使用,系统会认为是垃圾。而进行回收。可能导致对象状态的丢失。

相关文章:

【设计模式】单例模式

什么是单例模式? 保证一个类仅有一个实例,并提供一个访问它的全局访问点 单例模式的应用场景 1.整个程序的运行中只允许有一个类的实例; 2.需要频繁实例化然后销毁的对象。 3.创建对象时耗时过多或者耗资源过多,但又经常用到…...

(2)原神角色数据分析-2

功能一: 得到某个属性的全部角色,将其封装在class中 """各元素角色信息:一对多""" from pandas import DataFrame, Series import pandas as pd import numpy as npclass FindType:# 自动执行,将…...

138. 复制带随机指针的链表

138. 复制带随机指针的链表 题目-中等难度示例1. 题目-中等难度 给你一个长度为 n 的链表,每个节点包含一个额外增加的随机指针 random ,该指针可以指向链表中的任何节点或空节点。 构造这个链表的 深拷贝。 深拷贝应该正好由 n 个 全新 节点组成&…...

Windows中redis怎么设置密码

设置密码有两种方式,用过第一种可以 1. 命令行设置密码。 运行cmd切换到redis根目录,先启动服务端 >redis-server.exe 另开一个cmd切换到redis根目录,启动客户端 >redis-cli.exe -h 127.0.0.1 -p 6379 客户端使用config get requ…...

租赁OLED透明屏:打造独特商业体验的智慧选择

近年来,OLED透明屏技术在商业领域中迅速崛起,其高透明度和卓越的图像质量为商家创造了全新的展示方式。 租赁OLED透明屏作为一种智慧选择,不仅能提升品牌形象和吸引力,还能创造与众不同的视觉体验。 对此,尼伽将和大…...

Nacos服务治理—负载均衡

引入负载均衡 在消费方引入负载均衡机制&#xff0c;同时简化获取服务提供者信息的流程 Spring Cloud引入组件LoadBalance实现负载均衡 添加依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web<…...

flask-----初始项目架构

1.初始的项目目录 -apps 包 ------存放app -user文件夹 -------就是一个app -models.py --------存放表模型 -views.py -------存放主代码 -ext包 -init.py -------实例化db对象 -manage.py -----运行项目的入口 -setting.py -----配置文件 2.各文件内容 manage…...

揭秘史上最全可视化大屏模板,00后亲测好用到离谱,效率加速99%

前几天老陈公司刚入职的一个00后&#xff0c;昨天被领导叫到办公室怒批了一个小时&#xff0c;我在外面都能听到领导的怒吼声&#xff0c;直接骂他是个垃圾&#xff0c;屁用没有&#xff0c;学都白上了。一个180的大高个小伙&#xff0c;直接被骂到痛哭流涕&#xff0c;走出办公…...

nginx基于主机和用户访问控制以及缓存简单例子

一.基于主机访问控制 1.修改nginx.conf文件 2.到其他主机上测试 &#xff08;1&#xff09;191主机 &#xff08;2&#xff09;180主机 二.基于用户访问控制 1.修改nginx.conf文件 2.使用hpasswd为用户创建密码文件&#xff0c;并指定到刚才指定的密码文件webck 3.测试…...

React使用antd的图片预览组件,点击哪个图片就预览哪个的设置

使用了官方推荐的相册模式的预览&#xff0c;但是点击预览之后&#xff0c;每次都是从图片列表的第一张开始预览&#xff0c;而不是点击哪张就从哪张开始预览&#xff1a; 所以这里我就封装了一下&#xff0c;对初始化预览的列表进行了逻辑处理&#xff1a; 当点击开始预览的…...

排序的介绍

排序算法介绍 排序是计算机内经常进行的一种操作&#xff0c;其目的是将一组“无序”的记录序列调整为“有序”的记录序列 粗暴理解 将杂乱无章的数据元素&#xff0c;通过一定的方法按照关键字顺序排列的过程叫做排序 排序分内部排序和外部排序&#xff0c;若整个排序过程不需…...

appuploader使用教程

转载&#xff1a;appuploader使用教程 目录 问题解决秘籍 登录失败 don’t have access,提示没权限或同意协议 上传后在app管理中心找不到版本提交 不是等待上传状态 提示已经上传过包 上传提示tcpPort or udpPorts错误 上传提示已经有进程在上传 保存上传专用密码提示…...

企业权限管理(七)-权限操作

1. 数据库与表结构 1.1 用户表 1.1.1 用户表信息描述 users 1.1.2 sql语句 CREATE TABLE users( id varchar2(32) default SYS_GUID() PRIMARY KEY, email VARCHAR2(50) UNIQUE NOT NULL, username VARCHAR2(50), PASSWORD VARCHAR2(50), phoneNum VARCHAR2(20), STATUS INT )…...

【深度学习笔记】TensorFlow 常用函数

TensorFlow 提供了一些机器学习中常用的数学函数&#xff0c;并封装在 Module 中&#xff0c;例如 tf.nn Module 提供了神经网络常用的基本运算&#xff0c;tf.math Module 则提供了机器学习中常用的数学函数。本文主要介绍 TensorFlow 深度学习中几个常用函数的定义与用法&…...

函数的递归与迭代

递归经典问题&#xff1a;&#xff08;自行尝试&#xff09; 1、汉诺塔问题 2、青蛙跳台阶问题 练习1、 练习2、...

win10 + VS2022 安装opencv C++

最近需要用到C opencv&#xff0c;看了很多帖子都需要自己编译opencv源码。为避免源码编译&#xff0c;可以使用VS来配置opencv C。下面是主要过程&#xff1a; 目录 1. 从官网下载 opencv - Get Started - OpenCV 2. 点击这个exe文件进行安装 3. 配置环境变量 4. VS中的项…...

nginx反向代理及负载均衡的实现

目录 1.nginx反向代理 2.nginx负载均衡 3.nginx反向代理及负载均衡实现 nginx反向代理 4台主机都需要的操作&#xff1a; 两台服务器操作&#xff1a; 两台主机服务器进行测试&#xff1b; nginx负载均衡配置 4.nginx配置其他参数 多虚拟机访问 后端服务器日志中需要…...

Tomcat部署SpringBoot项目

1.修改打包方式 pom.xml 里 加上 <packaging>war</packaging>2.移除内嵌的Tomcat <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-tomcat</artifactId><scope>provided</scope…...

Oracle笔记--dblink

概述 1、database link是定义一个数据库到另一个数据库的路径的对象&#xff0c;database link允许你查询远程表及执行远程程序。在任何分布式环境里&#xff0c;database都是必要的。另外要注意的是database link是单向的连接。 2、在创建database link的时候&#xff0c;Ora…...

Mapbox加载天地图CGCS2000矢量瓦片地图

1.背景 最近在做天地图的项目&#xff0c;要基于MapBox添加CGCS2000矢量切片数据&#xff0c;但是 Mapbox 只支持web 墨卡托&#xff08;3857&#xff09;坐标系的数据。Github有专业用户修改了mapbox-gl的相关代码&#xff0c;支持CGCS2000的切片数据加载&#xff0c;并且修改…...

财税合规数字化建设与税务师事务所行业实践

随着企业监管趋严与数字化不断深入&#xff0c;财税合规已成为企业经营管理中的重要环节。无论是中小企业还是集团公司&#xff0c;都需要建立规范的财务流程&#xff0c;完善纳税申报机制&#xff0c;强化风险自查能力&#xff0c;以实现合法合规&#xff0c;稳定经营。财税合…...

哪款头戴式蓝牙耳机性价比高?十大热门平价头戴式耳机品牌推荐!

2026年头戴耳机市场新老品牌争奇斗艳&#xff0c;从入门到高端让人目不暇接。作为一名经历过选择困难的音频爱好者&#xff0c;我完全理解这种幸福的烦恼&#xff1a;参数术语堆砌、营销话术包装&#xff0c;让人难辨虚实。在实测过多款产品后&#xff0c;我发现关键要避开这些…...

字节跳动发布AI编程神器TraeCN

目录 一、核心定位与功能 二、安装与初始化 三、基础使用流程 1. 打开 / 创建项目 2. 编码与 AI 辅助 3. SOLO 模式&#xff08;全自动开发&#xff09;Trae CN 4. 运行与预览 四、使用技巧&#xff08;提效&#xff09; 五、适合人群 Trae CN&#xff08;简称 Trae&#xff09…...

Skija与现有Java图形库对比:为什么选择Skija?

Skija与现有Java图形库对比&#xff1a;为什么选择Skija&#xff1f; 【免费下载链接】skija Java bindings for Skia 项目地址: https://gitcode.com/gh_mirrors/sk/skija Skija是一个高质量的Java绑定库&#xff0c;为Java开发者提供了强大的2D图形渲染能力。作为Skia…...

通俗秒懂:储能控制器在电网调频中的关键作用与实现原理

1. 电网调频的"急救科"与"内科"&#xff1a;为什么需要储能控制器&#xff1f; 想象一下电网就像人体的血液循环系统。频率稳定相当于血压稳定&#xff0c;一旦出现波动&#xff0c;轻则头晕目眩&#xff08;电能质量下降&#xff09;&#xff0c;重则危及…...

阿里agentscope下载、环境配置、部署运行(测试:语音交互大模型)

AgentScope是阿里巴巴/通义团队开源的新一代生产级多智能体&#xff08;Multi-Agent&#xff09;开发框架 正式版 1.0&#xff08;官宣&#xff09;&#xff1a;2025年9月2日&#xff0c;阿里通义实验室发布 AgentScope 1.0&#xff08;Python&#xff09; 步骤&#xff1a; …...

永磁体磁场的有限元模拟(FEA仿真)

磁场是看不见摸不着的&#xff0c;那么怎样画出磁场的形状、描绘磁场的走向呢&#xff1f;借助有限元模拟是很好的方式。 有限元模拟也叫FEA仿真&#xff08;Finite Element Analysis&#xff09;&#xff0c;是使用计算机利用复杂的数学方程、模型和公式对真实物理系统进行模拟…...

CH9329串口转HID键鼠芯片:从选型到实战的避坑指南

1. CH9329芯片&#xff1a;串口转HID的"万能翻译官" 第一次接触CH9329时&#xff0c;我把它想象成一个"语言翻译官"——能把单片机说的"方言"&#xff08;串口数据&#xff09;翻译成电脑能听懂的"普通话"&#xff08;USB HID协议&…...

中央企业如何借助数智平台推动技术应用与创新

观点作者&#xff1a;科易网-国家科技成果转化&#xff08;厦门&#xff09;示范基地一、现状概述&#xff1a;成效与短板 中央企业在我国科技创新体系中占据核心地位&#xff0c;其技术成果转化效率直接关乎国家产业链韧性和产业升级进程。近年来&#xff0c;随着数字化浪潮席…...

CLIP-GmP-ViT-L-14模型API压力测试:使用JMeter进行性能评估

CLIP-GmP-ViT-L-14模型API压力测试&#xff1a;使用JMeter进行性能评估 最近在项目里用上了CLIP-GmP-ViT-L-14模型&#xff0c;它处理图文匹配的能力确实不错。但模型部署上线后&#xff0c;我心里一直有个疑问&#xff1a;这API到底能扛住多少并发请求&#xff1f;响应时间稳…...