java 单例模式 之懒汉模式

article/2025/9/22 2:33:46

单例模式:一个类,始终仅仅对外提供自己的一个实例,这样的设计方案,就称单例模式。

懒汉模式:

  1. 构造函数私有

  2. 声明私有的本类静态实例

  3. 定义静态的方法,在方法中创建本类实例,并返回该实例

public class Singleton {// 1.将构造器私有private Singleton(){}// 2. 创本类的静态私有实例private static Singleton singleton;// 3.对外提供一个公有的 方法 获取本类的实例对象public  static Singleton get(){if(Objects.isNull(singleton)){ // 判断 本类的静态实例是否为空singleton = new Singleton();}return singleton;}}

由于 本类的构造器为私有,所以外界无法直接通过new 关键字来创建本类的实例对象 ,只能通过 本类中提供的对应方法来获取 本类的实例对象, 由于 本类的实例是static来修饰的 类加载结束后,该实例只会在内存中存在一份对象,使得 外部获取本类的实例对象将会是同一份对象

测试

public class Test {public static void main(String[] args) {Singleton s1 = Singleton.get();Singleton s2 = Singleton.get();/* 判断 s1 和s2 是否为同一份对象*/System.out.println(s1 == s2);}
}

运行结果:
在这里插入图片描述


http://chatgpt.dhexx.cn/article/9iK4CJyQ.shtml

相关文章

单例模式饿汉模式与懒汉模式

目录 1.什么是单例模式 2.为什么需要单例模式? 3.如何实现单例模式 3.1饿汉方式 3.2懒汉模式 1.什么是单例模式 单例模式是一种设计模式,单例模式能保证某个类在程序中只存在唯一一份实例, 而不会创建出多个实例。单例模式的具体实现又分为饿汉模式…

关于Java中单例模式(饿汉模式和懒汉模式)的简析

目录 一.什么是单例模式 二.饿汉模式和懒汉模式 饿汉模式 代码 懒汉模式 代码 关于多线程安全的问题 如何解决懒汉模式多线程安全问题 双if判断 一.什么是单例模式 简单来说,就是我们在程序中通过代码进行限制,在该程序中 只能创建一个对象 二.饿汉模式和懒汉模式 …

java设计模式之单例模式|单例模式之饿汉模式、懒汉模式、枚举方式|最详细的6种懒汉模式详解

目录 一、单例模式 二、饿汉模式和懒汉模式 1、饿汉模式,线程安全 2、懒汉模式 懒汉模式1,线程不安全(不常用) 懒汉模式2,线程安全(不常用) 懒汉模式3,线程安全,双…

全志F1C100s主线linux入坑记录 (10)调试串口更改

调试串口更改 百度网站 提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 调试串口更改前言uboot 修改一、修改设备树二、修改文件3. 修改内核传递参数 内核修改参考 前言 未完成版本 未完成版本 未完成版本 未完成…

f1c100s 调试问题汇总

问题 usb无法识别 windows显示无法识别的usb设备 解决: 卸载设备,插拔一下,就可以识别了,之后就会自动安装驱动。 umount失败 fuser ./d2 可以显示出当前哪个程序在使用磁盘上的某个文件、挂载点、甚至网络端口,并…

【f1c200s/f1c100s】FT5426触摸屏驱动适配

【f1c200s/f1c100s】FT5426触摸屏驱动适配 前言设备树配置IIC控制器FT5426设备树配置 内核配置结果 前言 嵌入式linux下的触摸屏驱动是基于input子系统的,当触摸发生时,内核上报触摸事件至用户层。我使用的显示屏是正点原子的7寸RGB接口显示屏&#xff…

f1c100s开发笔记

f1c100s开发笔记 全志芯片相关的论坛帖f1c100s移植帖交叉编译器的安装uboot的编译适配配置开始编译uboot编译遇坑 2020-05-20 09:56:15 星期四 全志芯片相关的论坛帖 https://whycan.cn/t_3019.html#p25005 f1c100s移植帖 https://whycan.cn/t_3211.html 交叉编译器的安装 …

全志F1C100S/F1C200S学习笔记(1)——基础简介及资料

文章目录 一、芯片概览二、芯片框图三、芯片规格四、资料:五、仓库:一、芯片概览 二、芯片框图 三、芯片规格 功能描述CPUARM9 CPU architecture16KByte D

f1c100linux系统吗,全志F1C100s怎么样 F1C100s芯片参数介绍

全志F1C100s芯片怎么样,F1C100s处理器好用吗?F1C100s是720P高清多媒体处理器。下面带来F1C100s芯片的具体参数,准备入手搭载F1C100s芯片设备的用户可以参考一下。 F1C100s芯片架构图 F1C100s特性介绍 支持H.264 1920x108030fps 解码 支持MJPE…

全志F1C100S的BROM研究

全志f1c100s是个性价比很高的芯片,但是对一般人不太友好的是它的资料开放的太少了。 网上找不到完整版的用户手册,只能从有限的手册文档和参考代码旁敲侧击,反向猜测。 关于它的BROM网上的手册内容很少。 手册上只有短短3句话: 具…

10、Lctech Pi(F1C200S)驱动电阻屏触摸芯片ns2009(ts2007),buildroot配置tslib(CherryPi,Mangopi,F1C100S)

本次主要参考: https://github.com/mangopi-sbc/buildroot-mangopi-r https://blog.csdn.net/qq_35031421/article/details/113436888 https://blog.csdn.net/dancheqishi23/article/details/116498088 (如果方便请给这几位大佬一个关注) 开…

F1C100S自制开发板调试过程

疫情,等了好久板子终于到了。 我这里使用的是坑网大佬提供的tiny200开发包,用的芒果派R3配置文件 1,配置其的介质,我板子上用的是nor-spi-flash,所以需要在设备树里面屏蔽掉nand-flash相关的节点,否则启动会有错误。 …

F1C100S(Lichee Nano)触摸屏 (GT9147)

1、前提 Ubuntu 环境版本 (18.04) Linux ubuntu 5.4.0-131-generic #147~18.04.1-Ubuntu SMP Sat Oct 15 13:10:18 UTC 2022 x86_64 x86_64 x86_64 GNU/LinuxARM GCC版本 gcc version 7.2.1 20171011 (Linaro GCC 7.2-2017.11)F1C100S Linux版本 (linux-nano-5.2-tf) 链接 …

全志F1C100s主线linux入坑记录 (5)LVGL8.2移植

LVGL8.2移植 百度网站 文章目录 LVGL8.2移植一、安装VScode二、安装lvgl模拟器二、F1c100s 移植lvgl参考 一、安装VScode 进入VScode官网下载安装包,如果最新版本安装有问题可以安装老版本的 https://code.visualstudio.com/使用命令行安装VScode sudo dpkg -i …

全志F1C100s主线linux入坑记录 (7)GBA模拟器移植

GBA模拟器移植 百度网站 文章目录 GBA模拟器移植一、下载gpsp 源代碼二、gpsp环境配置参考 一、下载gpsp 源代碼 gpsp源码 解压文件 7z x gpsp.7z 二、gpsp环境配置 gpsp需要SDL环境我们先在bulidroot中添加SDL包 make menuconfigTarget packages ---> Graphic libra…

9、Lctech Pi(F1C200S)开启I2C0(CherryPi,Mangopi,F1C100S)

本次主要参考: https://github.com/mangopi-sbc/buildroot-mangopi-r https://wiki.sipeed.com/soft/Lichee/zh/Nano-Doc-Backup/index.html (如果方便请给这几位大佬一个关注) 注意代码块之间的空行 配置设备树文件 1、打开linux-5.7.1/a…

全志F1C100s主线linux入坑记录 (3)适配其他分辨率的LCD

适配其他分辨率的LCD 百度网站 文章目录 适配其他分辨率的LCD一、修改U-boot屏幕参数二、修改linux内核文件三、测试效果 一、修改U-boot屏幕参数 修改对应屏幕的参数(我这里是1024*600的屏幕) 修改 -> ARM architecture -> Enable graphical ub…

全志F1C100S从零开发记录(1)

1.刚买到板子,开箱如下图所示: 2.管脚焊接(焊接串口,用来看串口打印信息),5v供电: 3.通过usb转ttl接到电脑上: . 4.设置串口波特率115200 ,打开串口,上电出…

7、Lctech Pi(F1C200S)开启RNDIS,通过USB与电脑联网(CherryPi,Mangopi,F1C100S)

本次主要参考: 荔枝nano开启RNDIS驱动,无需补丁。 https://github.com/peng-zhihui/Planck-Pi#head23 https://github.com/mangopi-sbc/buildroot-mangopi-r https://www.cnblogs.com/listenscience/p/13758272.html (如果方便请给这几位大佬…

全志F1C200S F1C100S 介绍

很久以前发现了一颗性价比极高而且比较好玩的SOC,加群请仔细阅读本博客(见DKTool界面,请备注“来自博客”) 那就是全志F1C100S F1C200S,其中F1C100S内置32MB DDR1内存,F1C200S内置64MB DDR1内存。 这个片…