【Java中23种设计模式-单例模式--饿汉式】

加油,新时代打工人!

简单粗暴,直接上代码。
23种设计模式定义介绍

Java中23种设计模式-单例模式

Java中23种设计模式-单例模式2--懒汉式线程不安全

Java中23种设计模式-单例模式2--懒汉式2线程安全

java 复制代码
package mode;

/**
 * @author wenhao
 * @date 2024/02/20 09:34
 * @description 单列模式--饿汉式
 * 是否 Lazy 初始化:否
 * 是否多线程安全:是
 * 实现难度:易
 * 描述:这种方式比较常用,但容易产生垃圾对象。
 * 优点:没有加锁,执行效率会提高。
 * 缺点:类加载时就初始化,浪费内存。
 * 它基于 classloader 机制避免了多线程的同步问题,不过,instance 在类装载时就实例化,
 * 虽然导致类装载的原因有很多种,在单例模式中大多数都是调用 getInstance 方法,
 * 但是也不能确定有其他的方式(或者其他的静态方法)导致类装载,这时候初始化 instance 显然没有达到 lazy loading 的效果。
 */
public class SingleMode3 {
	//创建实例对象
	private static SingleMode3 singleMode3 = new SingleMode3();
	//让构造函数为 private,这样该类就不会被实例化
	private SingleMode3(){}
	//获取唯一可用的对象
	private static SingleMode3 getInstance(){
		return singleMode3;
	}

	public static void main(String[] args) {
		SingleMode3 instance = getInstance();
		SingleMode3 instance1 = getInstance();
		System.out.println(instance == instance1);
	}
}
相关推荐
流烟默1 分钟前
xxl-job 接入 Spring 的两种方式:手动装配与自动装配(含 initMethod 双启动踩坑实录)
java·spring·xxl-job
鹅城剑仙2 分钟前
Spring Boot 3 全局异常处理与统一响应封装进阶实战
java·spring boot·后端
橘子汽水16815 分钟前
Leetcode 208,207实现Trie前缀树,课程表
java·数据结构·算法·leetcode
tryxr18 分钟前
Chat2Excel 文件服务模块剩余功能开发
java·服务器·windows·java项目·文件服务
张小姐的猫20 分钟前
【AI大模型接入SDK】 —— Ollama本地接入Deepseek
java·linux·开发语言·网络·c++·人工智能
谢亮_vipxieliang21 分钟前
ValidX与Maven/Gradle集成配置指南
java·spring boot·spring·maven·hibernate
Nuanyt23 分钟前
JUC常见核心知识梳理01 线程 并发 JMM volatile 管程 锁 synchronized
java·开发语言·网络·jvm
我命由我1234528 分钟前
Android 控件 - ListAdapter
android·java·java-ee·android studio·android jetpack·android-studio·android runtime
CodeStats32 分钟前
【Java 类加载器】Java 类加载器完整体系深度拆解(中):URLClassLoader 能力剖析与继承委派辨析
java·jvm·classloader·类加载器
Terra.K34 分钟前
JAVA职业探索和学习----中间件开发目标
java·学习·中间件