【Java】单例设计模式

单例设计模式简介

目录

  • 1.单例设计模式是什么?
  • 2.单例设计模式设计方法
    • 饿汉式
    • 懒汉式
  • 3.单例设计模式的应用
    • 任务管理器(仅有一个页面,不可多开)
    • Runtime运行环境

1.单例设计模式是什么?

设计模式 是解决 特定问题的优秀设计方式之一
单例设计模式:确保一个类只能够最多生成一个对象的类设计模式。

在这里插入图片描述

2.单例设计模式设计方法

饿汉式

注:所谓饿汉式,就是还没用就提前准备好该类对象。

  • 定义一个类变量记住类的一个对象
  • 把类的构造器私有
  • 定义一个类方法,返回类对象

设计示例:
A类

package suziguang_d5_singleInstance;public class A {private static A a = new A();private A(){}public static A getA(){return a;}
}

测试类

package suziguang_d5_singleInstance;public class Test {public static void main(String[] args) {// A a = new A(); //errorA a1 = A.getA();A a2 = A.getA();A a3 = A.getA();System.out.println(a1);System.out.println(a2);System.out.println(a3);}
}

输出结果
在这里插入图片描述

懒汉式

注:所谓懒汉式,就是什么时候用什么时候才去生成对象。

  • 定义一个类对象,空
  • 把类的构造器私有
  • 提供一个类方法,保证返回的是同一个对象

设计示例:
B类

package suziguang_d5_singleInstance;public class B {private static B b = null;private B() {}public static B getB(){if(b == null) b = new B();return b;}
}

测试类

package suziguang_d5_singleInstance;public class Test_B {public static void main(String[] args) {B b1 = B.getB();B b2 = B.getB();System.out.println(b1);System.out.println(b2);}
}

输出结果
在这里插入图片描述

3.单例设计模式的应用

任务管理器(仅有一个页面,不可多开)

在这里插入图片描述

Runtime运行环境

查看:IDEA中输入Runtime,按ctrl + 鼠标左击。
在这里插入图片描述


EOF

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/344824.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于springboot的教学管理系统的设计

管理员账户功能包括:系统首页,个人中心,管理员管理,教师管理,学生管理,课程管理 教师账户功能包括:系统首页,个人中心,学生管理,课程管理,课程表信…

LibreOffice电子表格如何实现快速筛选并将结果放到新的工作表

如果是在excel或者wps中,可能大家都习惯了自动筛选,然后复制到新的工作表或者删除掉复制内容的办法。但是在LibreOffice中,经测试,大数据表的删除或者复制是非常慢的。这也是很多人放弃LibreOffice的原因之一。那么我们如何快速筛…

ArcGIS for js 4.x 加载图层

二维&#xff1a; 1、创建vue项目 npm create vitelatest 2、安装ArcGIS JS API依赖包 npm install arcgis/core 3、引入ArcGIS API for JavaScript模块 <script setup> import "arcgis/core/assets/esri/themes/light/main.css"; import Map from arcgis…

关于多线程

并发编程 在计算机的操作系统中,我们了解到了进程管理,有了解到了cpu的特性,核心数和频率,在次之前我们所写的代码都是只用到了一个核心,此时无论你怎么优化代码,最多也只能使用到一个cpu的核心,把这个核心跑满了,其他的核心也是闲着,所以我们可以通过特殊的编写代码,把多个CP…

搭建python虚拟环境,并在VSCode中使用

创建环境 python -m venv E:\python\flask\venv激活环境 运行下图所示的bat文件 退出环境 执行下面的语句 deactivateVSCode中配置&#xff1a; ①使用CTRLshiftp命令&#xff0c;使用CTRLshiftp命令&#xff0c;输入&#xff1a; Python: Select Interpreter②选择之前创建…

数据库-列的完整性约束-概述

引言 我们都知道人以群分 &#xff0c;但分为 若按照 人类的皮肤分类 黄种人&#xff08;其实是西方人定义&#xff09;我们虽然不承认也不否定 &#xff0c;黑皮肤 &#xff0c;棕色人种&#xff08;在南太平洋和西太&#xff09;白种人 排名你懂的 这好像是枚举类型 emm 尴尬…

【线性代数】向量空间,子空间

向量空间 设V为n维向量的集合&#xff0c;如果V非空&#xff0c;且集合V对于向量的加法以及数乘两种运算封闭&#xff0c;那么就称集合V为向量空间 x&#xff0c;y是n维列向量。 x 向量组等价说明可以互相线性表示 向量组等价则生成的向量空间是一样的 子空间 例题18是三位向…

三、【源码】Mapper XML的解析和注册使用

源码地址&#xff1a;https://github.com/mybatis/mybatis-3/ 仓库地址&#xff1a;https://gitcode.net/qq_42665745/mybatis/-/tree/03-parse-mapperXML Mapper XML的解析和注册使用 流程&#xff1a; 1.Resources加载MyBatis配置文件生成Reader字符流 2.SqlSessionFact…

考虑风光场景生成的电动汽车并网优化调度【遗传算法】【IEEE33】

目录 主要内容 部分代码 部分结果 下载链接 主要内容 程序主要内容是考虑风光场景生成的电动汽车并网优化调度&#xff0c;采用的方法如下所述&#xff1a; ①采用蒙特卡洛方法&#xff0c;结合copula函数以及fuzzy-kmeans&#xff0c;获取6个典型风光出力场景&…

【Pytorch】计算机视觉项目——卷积神经网络TinyVGG模型图像分类(如何使用自定义数据集)

目录 一、前言二、工作流程回顾三、详细步骤流程1. 环境配置2. 数据准备数据集下载数据存储结构&路径查看图片 3. 数据转换4. 自定义数据集&#xff08;Custom Dataset &#xff09;4.1 方法一&#xff1a;使用ImageFolder加载数据集信息查看张量转图片创建DataLoader 4.2 …

计算机毕业设计项目、管理系统、可视化大屏、大数据分析、协同过滤、推荐系统、SSM、SpringBoot、Spring、Mybatis、小程序项目编号1-500

大家好&#xff0c;我是DeBug&#xff0c;很高兴你能来阅读&#xff01;作为一名热爱编程的程序员&#xff0c;我希望通过这些教学笔记与大家分享我的编程经验和知识。在这里&#xff0c;我将会结合实际项目经验&#xff0c;分享编程技巧、最佳实践以及解决问题的方法。无论你是…

芯片软件复位的作用

在调试系统或现场使用时&#xff0c;常用软件复位而不是频繁地通过断电来实现复位操作有以下优劣势&#xff1a; 优势&#xff1a; 数据完整性&#xff1a;通过软件复位&#xff0c;系统可以在一个受控的环境中重新启动&#xff0c;确保数据的完整性和一致性&#xff0c;避免…

阿奇科技 简单java-swing计算器源码(可用于课设等)

此系统用的技术有java swing&#xff01; 实现的功能&#xff1a; 加减乘除&#xff08;可以进行小数运算&#xff09; 清空数据 最小化 小巧方便&#xff0c;功能齐全&#xff01; 页面截图: 源码地址&#xff1a;点击这里下载源码 获取全套代码&#xff0c;或咨询更多代码…

uC-OS-III多任务程序

目录 一、STM32CubeMX基于HAL库建立工程 1、配置RCC 2、配置SYS 3、配置GPIO输出口 4、串口配置 5、系统时钟频率配置 二、uC/OS-III下载 三、文件移植 1、uC-BSP文件夹中添加文件 2、uC-CONFIG文件夹中添加文件 3、HAL工程的MDK-ARM文件夹设置 4、uC-CPU文件夹设置…

【数据结构】顺序表专题(学习记录)

正文开始 课前预备 1. 课程目标 C语言语法基础到数据结构与算法&#xff0c;前⾯已经掌握并具备了扎实的C语言基础&#xff0c;为什么要学习数据结构课程&#xff1f;⸺通讯录项目 2. 需要的储备知识 简单了解&#xff0c;通讯录具备增加、删除、修改、查找联系⼈等操作。要想…

RabbitMQ--Hello World(基础详解)

文章目录 先决条件RabbitMQ 初识RabbitMQ--Hello World发送接收 更多相关内容可查看 先决条件 本教程假定 RabbitMQ 已安装并在标准端口 &#xff08;5672&#xff09; 上运行。如果你 使用不同的主机、端口或凭据&#xff0c;连接设置将需要 调整。如未安装可查看Windows下载…

【Ardiuno】ESP32单片机初试点亮LED小灯

之前用的Ardiuno的主板做过一些简单的开发实验&#xff0c;按照相关说明还是很容易进行操作的。最近看了ESP32可以有wifi的功能&#xff0c;也就买来实验一下。 ESP32的主板开发环境安装&#xff0c;按照说明的安装下载程序总是报错&#xff0c;又上网搜索半天最后按照CSDN上某…

C语言实战:贪吃蛇(万字详解)

&#x1f4a1;目录 效果图 界面设计思路 1. 基本布局 2. 视觉元素 游戏机制设计 基本规则 游戏代码 前期准备 游戏代码详解 数据结构设计 宏定义 数据结构定义 函数原型&#xff08;详见后文&#xff09; 主函数代码 核心代码 Review 效果图 界面设计思路 1. 基…

【应用浅谈】Odoo的库存计价与产品成本(三)

序言:时间是我们最宝贵的财富,珍惜手上的每个时分 Odoo的库存&#xff08;Stock&#xff09;模块拥有众多功能&#xff0c;其中库存计价是一项非常重要的功能&#xff0c;原生的成本方法分三种&#xff1a;【标准成本】&#xff0c;【平均成本】&#xff0c;【先进先出】&#…

【C++11】多线程常用知识

知识体系 thread C++ thread中最常用的两个函数是join和detach,怎么选择呢,简单来说,如果希望等待线程结束,用join,如果希望异步执行,且不等待执行结果,那么就用detach;thread_local可以简单理解为一个线程级别的全局变量;线程id在调试多线程程序时是非常有用的东西;…