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

【java】设计模式——单例模式

  1. 单例模式要点
    • 一个类只需要一个实例化对象;
    • 必须自行创建实例;
    • 必须自行向整个系统提供这个实例
  2. 实现
    • 只提供私有构造方法;
    • 有一个该类的静态私有对象;
    • 提供一个静态公有方法用于创建、获取静态私有对象;
    分析:
    • 私有构造方法->不能随意创建实例;
    • 静态私有对象:确保只有一个实例对象
    • 静态公有方法->提供一个外部接口,可直接通过类名调用该方法,方法内部能直接调用静态对象;
  3. 饿汉式实现方法:在创建类时实例化
// 在创建类时直接实例化,空间换时间
public class SingletonOne{//1. 私有构造private SingletonOne(){}//2. 在创建该类时初始化静态私有对象private static SingletonOne instance = new SingletonOne();// 3.提供静态公有方法返回静态实例对象public static SingletonOne getInstance(){return instance;}
}
  1. 懒汉式实现方法:静态公有方法中实例化
// 在调用静态公有方法后,才完成对象的实例化
public class SingletonTwo{//1. 私有构造private SingletonOne(){}//2. 在创建该类时初始化静态私有对象private static SingletonTwo instance = null;// 3.提供静态公有方法返回静态实例对象public static SingletonOne getInstance(){if(instance==null) // 保证只会实例化一次instance = new SingletonTwo();return instance;}
}
  1. 饿汉式 vs 懒汉式
单例模式的实现方法实例化对象的时间空间特点时间特点线程安全
饿汉式在类加载时候完成空间占用时间长在第一次使用时加载速度快线程安全
懒汉式在第一次调用共有方法时完成不会造成内存空间浪费在第一次使用时加载时间相对慢线程不安全

相关文章:

【java】设计模式——单例模式

单例模式要点: 一个类只需要一个实例化对象;必须自行创建实例;必须自行向整个系统提供这个实例 实现: 只提供私有构造方法;有一个该类的静态私有对象;提供一个静态公有方法用于创建、获取静态私有对象&…...

【编织时空一:探究顺序表与链表的数据之旅】

本章重点 线性表 顺序表 顺序表OJ题 1.线性表 线性表(linear list)是n个具有相同特性的数据元素的有限序列。 线性表是一种在实际中广泛使用的数据结构,常见的线性表:顺序表、链表、栈、队列、字符串... 线性表在逻辑上是线性结…...

Tesseract用OpenCV进行文本检测

我没有混日子,只是辛苦的时候没人看到罢了 一、什么是Tesseract Tesseract是一个开源的OCR(Optical Character Recognition)引擎,OCR是一种技术,它可以识别和解析图像中的文本内容,使计算机能够理解并处理…...

XLua案例学习

下载 xlua 之后把 asset 文件中的全部文件粘贴到项目文件Asset文件下,将tool粘贴到 asset 同级目录下 然后把 HOTFIX_ENABLE 宏打开 之后 编辑 lua 脚本 更改源代码之后先 Generate Code 然后 HotFix inject in Editor 开发过程: 首先开发业务…...

Linux:Shell编程之免交互

目录 绪论 1、here Document免交互 1.1 格式 1.2 cat结合免交互实现重定向输出到指定文件 1.3 变量替换 2、Expect免交互 2.1 三种写法 3、免交互实现普通用户切换root 3.1 send_user 4、接收参数 5、嵌入执行模式 6、ssh远程登录 绪论 免交互:不需要人…...

最强自动化测试框架Playwright(18)- 执行js脚本

page.evaluate() API 可以在网页上下文中运行 JavaScript 函数,并将结果带回 Playwright 环境。 href page.evaluate(() > document.location.href) 如果结果是 Promise 或函数是异步的,则计算将自动等待,直到解析…...

阿里云云主机_ECS云服务器_轻量_GPU_虚拟主机详解

阿里云云主机分为云虚拟主机、云服务器ECS、轻量应用服务器、GPU云服务器、弹性裸金属服务器、专有宿主机、FPGA云服务器、高性能计算E-HPC、无影云电脑等,阿里云百科来详细说下阿里云云主机详解: 目录 阿里云云主机 云服务器ECS 轻量应用服务器 云…...

[QT编程系列-41]:Qt QML与Qt widget 深入比较,快速了解它们的区别和应用场合

目录 1. Qt QML与Qt widget之争 1.1 出现顺序 1.2 性能比较 1.3 应用应用领域 1.4 发展趋势 1.5 QT Creator兼容上述两种设计风格 2. 界面描述方式的差别 3. QML和Widgets之间的一些比较 4. 选择QML和Widgets之间的Qt技术时,可以考虑以下几个因素&#xff…...

springboot 使用zookeeper实现分布式锁

一.添加ZooKeeper依赖&#xff1a;在pom.xml文件中添加ZooKeeper客户端的依赖项。例如&#xff0c;可以使用Apache Curator作为ZooKeeper客户端库&#xff1a; <dependency><groupId>org.apache.curator</groupId><artifactId>curator-framework</…...

ViewUI表格Table嵌套From表单-动态校验数据合法性的解决方法

项目场景&#xff1a; 项目需求&#xff1a;在表格中实现动态加减数据&#xff0c;并且每行表格内的输入框&#xff0c;都要动态校验数据&#xff0c;校验不通过&#xff0c;不让提交数据&#xff0c;并且由于表格内部空间较小&#xff0c;我仅保留红边框提示&#xff0c;文字…...

服务器安装Tomcat

下载Tomcat 下载地址在这&#xff1a; Tomcat官网 下载完成以后把压缩包上传到服务器中&#xff08;我传到了www/java&#xff09;,进行解压(解压到)&#xff0c;如果没有进行指定解压到哪里&#xff0c;默认是到root文件夹中 tar -zxvf /www/java/apache-tomcat-9.0.103.tar.…...

【Apollo】自动驾驶的平台背景,平台介绍

作者简介&#xff1a; 辭七七&#xff0c;目前大一&#xff0c;正在学习C/C&#xff0c;Java&#xff0c;Python等 作者主页&#xff1a; 七七的个人主页 文章收录专栏&#xff1a; 七七的闲谈 欢迎大家点赞 &#x1f44d; 收藏 ⭐ 加关注哦&#xff01;&#x1f496;&#x1f…...

docker 安装与配置

一、 环境准备 IP主机名操作系统版本docker版本192.168.168.128master01CentOS Linux release 7.9.2009 (Core)docker-20.10.15.tgz 二、安装 # 安装包获取 cd /root wget -c https://download.docker.com/linux/static/stable/x86_64/docker-20.10.15.tgz [rootmaster01 ~]…...

Titanic--细节记录三

目录 image sklearn模型算法选择路径图 留出法划分数据集 ‘留出’的含义 基本步骤和解释 具体例子 创造一个数据集 留出法划分 预测结果可视化 分层抽样 设置方法 划分数据集的常用方法 train_test_split 什么情况下切割数据集的时候不用进行随机选取 逻辑回归…...

k8s-----集群调度

目录 一&#xff1a;调度约束 二&#xff1a;Pod 启动创建过程 三&#xff1a;k8s调度过程 1、Predicate 有一系列的常见的算法 2、常见优先级选项 3、指定调度节点 &#xff08;1&#xff09;nodeName指定 &#xff08;2&#xff09;nodeSelector指定 四&#xff1a;亲和…...

01-Spark环境部署

1 Spark的部署方式介绍 ​ Spark部署模式分为Local模式&#xff08;本地模式&#xff09;和集群模式&#xff08;集群模式又分为Standalone模式、Yarn模式和Mesos模式&#xff09; 1.1 Local模式 Local模式常用于本地开发程序与测试&#xff0c;如在idea中 1.2 Standalone模…...

HOT86-单词拆分

leetcode原题链接&#xff1a;单词拆分 题目描述 给你一个字符串 s 和一个字符串列表 wordDict 作为字典。请你判断是否可以利用字典中出现的单词拼接出 s 。注意&#xff1a;不要求字典中出现的单词全部都使用&#xff0c;并且字典中的单词可以重复使用。 示例 1&#xff1a…...

开源数据集分类汇总(医学,卫星,分割,分类,人脸,农业,姿势等)

本文汇总了医学图像、卫星图像、语义分割、自动驾驶、图像分类、人脸、农业、打架识别等多个方向的数据集资源&#xff0c;均附有下载链接。 该文章仅用于学习记录&#xff0c;禁止商业使用&#xff01; 1.医学图像 疟疾细胞图像数据集 下载链接&#xff1a;http://suo.nz/2V…...

Linux:Firewalld防火墙

目录 绪论 1、firewalld配置模式 2、预定义服务&#xff1a;系统自带 3端口管理 绪论 firewalld 防火墙&#xff0c;包过滤防火墙&#xff0c;工作在网络层&#xff0c;centos7自带的默认的防火墙 作用是为了取代iptables 1、firewalld配置模式 运行时配置 永久配置 i…...

mysql死锁;锁表排查

概述 有时候提前终止了navicat执行线程&#xff0c;但是实际mysql还在执行这个线程&#xff0c; 需要通过mysql本身去终止. mysql:8.0 三板斧第一斧 捞点网上线程现成的执行命令 1.查询是否锁表 show OPEN TABLES where In_use > 0;2.查询进程&#xff08;如果您有SUP…...

ROS2 Nav2插件化实践:从零构建自定义全局与局部规划器

1. ROS2 Nav2插件化架构深度解析 第一次接触Nav2的插件系统时&#xff0c;我完全被它的灵活性震惊了。这就像乐高积木一样&#xff0c;你可以随意替换导航系统的各个模块&#xff0c;而不用重新编译整个框架。这种设计让我想起小时候玩的插卡游戏机&#xff0c;不同卡带插进去…...

AI建站工具从入门到上线:零基础也能轻松搭建专业网站的全流程攻略

痛点共情&#xff1a;为什么你建站总是“想得美&#xff0c;做得累”&#xff1f;相信很多企业主、创业者或市场负责人都有过类似的经历&#xff1a;想为公司做一个专业网站&#xff0c;要么被建站公司报的高价吓退&#xff0c;要么自己尝试用传统建站工具&#xff0c;结果被模…...

预热期间的惊群效应避免

在分布式缓存预热场景中,惊群效应是指当缓存失效或系统启动时,大量并发请求同时涌入后端(数据库或下游服务),导致瞬间负载飙升、系统响应变慢甚至崩溃的现象。 一、惊群效应的本质 1.1 什么是惊群效应 典型场景: 系统刚启动,本地缓存为空,1000 个并发请求同时到达 每…...

2024年零基础入门Delphi 12开发极速指南

1. 为什么2024年还要学Delphi&#xff1f; 十年前如果有人问我这个问题&#xff0c;我可能会犹豫。但2024年的Delphi 12已经完全不同了——它现在是一个支持Windows/macOS/Linux/iOS/Android五大平台的全栈开发利器。我去年用Delphi 12给客户做了个跨平台库存管理系统&#xff…...

将虚拟机变成服务器

背景&#xff1a;车载开发&#xff0c;缺少编译服务器&#xff0c;为避免每个人都安装虚拟机&#xff0c;想把我的虚拟机变成服务器&#xff0c;方便同事使用。1. 配置虚拟机端口转发2. 编译docker容器 2.1安装docker sudo apt install -y docker.io …...

Rust高性能编程:Yi-Coder-1.5B所有权模型解析

Rust高性能编程&#xff1a;Yi-Coder-1.5B所有权模型解析 1. 引言 如果你刚开始学习Rust&#xff0c;可能会被所有权这个概念搞得有点懵。别担心&#xff0c;这很正常。Rust的所有权系统是它最独特的特性&#xff0c;也是保证内存安全的关键所在。今天我们就用Yi-Coder-1.5B这…...

【BLheli_S】P01 上位机参数修改、编译生成固件以及脱机烧录教程

目录 1.1 脱机烧录器购买 1.2 BLHeli_S相关资料下载 1.2.1 源码结构分析: 1.3 BLHeli_S 工程文件创建 1.3.1 Keil-C51 工程创建 1.4 BLHeli_S 参数修改 1.5 BLHeli_S 引脚定义说明 1.6 脱机烧录教程配置 1.1 脱机烧录器购买 阿莫智能设备 1.2 BLHeli_S相关资料下载 源码下载 上…...

5分钟掌握百度网盘提取码智能获取:告别繁琐搜索的高效解决方案

5分钟掌握百度网盘提取码智能获取&#xff1a;告别繁琐搜索的高效解决方案 【免费下载链接】baidupankey 项目地址: https://gitcode.com/gh_mirrors/ba/baidupankey 还在为百度网盘资源提取码而烦恼吗&#xff1f;baidupankey作为一款专业的提取码智能获取工具&#x…...

Graphormer保姆级教程:从服务器选购(RTX4090)到服务上线全生命周期

Graphormer保姆级教程&#xff1a;从服务器选购&#xff08;RTX4090&#xff09;到服务上线全生命周期 1. 项目概述 Graphormer是一种基于纯Transformer架构的图神经网络模型&#xff0c;专门为分子图&#xff08;原子-键结构&#xff09;的全局结构建模与属性预测而设计。该…...

2015年的一个RFC草案,如何终结了“证书到期导致网站崩溃“的深夜急救时代

我们在HTTPS还没全面普及的前十年&#xff0c;互联网运维圈里流传着一句特别扎心的黑色玩笑&#xff1a;“再稳定的网站&#xff0c;也逃不过证书过期的午夜惊魂”。相信不少运维人都有过这样的经历——凌晨睡得正沉&#xff0c;突然被监控告警吵醒&#xff0c;迷迷糊糊地爬起来…...