懒汉式单例

发布时间:2026/9/22 8:02:43

懒汉式单例 原理依托静态内部类的懒加载特性外部类Singleton被加载、初始化的时候内部的静态嵌套类LazyHolder并不会被 JVM 加载初始化只有第一次调用getInstance()访问LazyHolder.INSTANCE时JVM 才会触发LazyHolder类加载执行它的静态变量初始化执行new Singleton()创建唯一实例实例不是类加载阶段就提前创建真正用到的时候才初始化标准懒加载懒汉式。对比饿汉式直接在外部类写public static final Singleton instance new Singleton()外部类一加载就直接把对象造好了。问题 2不存在并发线程安全问题天生线程安全核心保障JVM 类加载的类初始化锁CLinit 锁Java 虚拟机规范规定一个类的clinit静态初始化方法只会被执行一次多线程同时尝试触发同一个类初始化时JVM 内部会自动加锁保证串行执行只会有一个线程完成类初始化其余线程阻塞等待初始化完成INSTANCE是static final赋值只会在类初始化阶段执行唯一一次赋值完毕后引用不可修改整个创建过程完全由 JVM 底层机制管控不需要手动加synchronized、volatile不会出现多线程同时创建多个实例、指令重排带来的半初始化对象等问题。补充这就是业界公认最优、JVM 层面最优雅的单例实现优点汇总懒加载不用不创建对象节省内存天然线程安全依靠 JVM 类加载机制兜底无锁、没有同步开销写法简洁、可读性高final修饰外部类、私有构造一定程度上规避反射暴力破解想要彻底防反射需要额外判断。小短板唯一瑕疵可以通过反射强行调用私有构造方法破坏单例如果需要杜绝反射破单例要在构造方法内部增加判断检测LazyHolder.INSTANCE是否已经初始化已存在则直接抛出异常。总结归类懒汉式单例并发完全没有线程安全问题JVM 原生保证定位日常开发首选、教科书级别的经典优质单例方案。
延伸阅读

更多相关文章

2026/9/22 9:12:19

【WPC】Qi-v1.3.3-authentication

文章目录前言一、概述(一)、密码学标准参考(二)、密码算法要求(三)、安全总览(四)、对现有生态的影响(五)、证书吊销支持二、证书与私钥(一&#…

2026/9/19 8:03:54

构建高内聚低耦合的通用辅助模块:Spring Boot实战与设计哲学

在软件开发与团队协作中,我们常常听到“辅助”这个词。它可能指代一个辅助类、一个工具函数、一个支持系统,甚至是一个团队角色。但“辅助是辅助每一条路”这句话,深刻地揭示了在技术架构与工程实践中,一个真正优秀的辅助模块或角…

2026/9/22 9:10:19

vmware使用教程:手写实现虚拟机环境搭建避坑指南

vmware使用教程:手写实现虚拟机环境搭建避坑指南 版本升级后 API 全变了,以前能跑的脚本现在报错一堆,是不是让你抓狂?别急,今天咱们不聊那些虚头巴脑的理论,直接上手。我花了三个月时间,把 VMware…

2026/9/22 9:10:19

图解原理:3分钟吃透风云武魂传说私服升级API变更痛点

图解原理:3分钟吃透风云武魂传说私服升级API变更痛点 版本升级后 API 全变了?别慌,这不是你的错,是旧架构在作祟。 很多应届生刚接手项目,发现文档里写的 startGame() 方法突然报 404 错误,心里直打鼓。 今天我们就用…

2026/9/22 9:10:19

3分钟吃透dnf地狱级:高频面试题避坑指南

3分钟吃透dnf地狱级:高频面试题避坑指南 报错一堆看不懂 StackTrace?别慌,这不是代码写得烂,是你没搞懂底层的异常传播机制。在 Java 和 C# 的后端开发面试中, dnf地狱级 异常处理机制是 高频面试题…

2026/9/22 9:10:19

3天搞定纵横公路造价软件,实战项目避坑指南

3天搞定纵横公路造价软件,实战项目避坑指南 刚接手一个市政管网改造的 实战项目 ,想跑个标底,结果在 纵横公路造价软件 配置环境上卡了半天。不是报错,就是数据导入乱码,急得满头汗。这种“环境配半天,工作没干成”的痛,很多造价员都懂。…

2026/9/21 3:28:31

GAMP 5 基于风险的计算机化系统验证:软件分类与审计追踪实践

简介:《A Risk-Based Approach to Compliant GxP Computerized Systems》即业内熟知的GAMP 5指南,面向制药企业质量与IT合规人员、验证工程师及计算机化系统管理者,用于解决GxP法规环境下系统合规性难以科学落地的问题。文档以风险管理为主线…

2026/9/22 9:07:39

安全托管MSSP实战:从静态防御到人机协同的攻防运营与应急响应

简介:这份PPT围绕互联网业务安全托管服务展开,面向企业安全负责人、IT运维人员及关注MSSP/MSS选型的读者,重点回应传统安全过度依赖人工、碎片化静态防御难以对抗产业化攻击等痛点。资源共1个pptx文件,包体约30.63MB,以…

2026/9/22 0:04:49

输电线路在线监测高频面试题拆解 3秒抓住官方文档重点

输电线路在线监测高频面试题拆解 3秒抓住官方文档重点 官方文档几百页翻到头还是懵?面试问到 输电线路在线监测 的数据链路时,脑子一片空白?别慌,这种 高频面试题 我整理了10年,专门治各种“文档太长抓不住重点”的毛病。…

2026/9/22 0:04:49

中介房源管理系统重构避坑:3个关键步骤搞定API变更

中介房源管理系统重构避坑:3个关键步骤搞定API变更 版本升级后 API 全变了,这种痛只有真做过的人懂。 很多团队在接手老旧房产项目时,最崩溃的不是代码烂,而是底层框架升级后,原本熟悉的接口调用方式彻底失效。 这份 保姆级教程…

2026/9/22 0:04:49

3个坑点带你一文搞懂55gg小游戏源码

3个坑点带你一文搞懂55gg小游戏源码 盯着控制台满屏的红色报错,看着那一长串 StackTrace ,是不是脑子瞬间宕机?别急,这种时候最忌讳的就是盲目改代码。很多刚入行的前端同学,面对 55gg 小游戏这类轻量级 H5…

2026/9/20 4:54:47

USB Type-C PCB布局分区设计:电源、高速信号与PD协议全攻略

做硬件这行,Type-C接口算是典型的“看着简单,做起来全坑”的东西。光引脚就24个,高低速信号、电源、控制线全部塞在一个小小的连接器里,如果PCB布局不做规划,打样回来基本就是“插上没反应”、“高速掉线”、“静电一打…

2026/9/21 18:32:12

系统编程学习原型如何补齐稳定性边界

系统编程学习原型如何补齐稳定性边界预算有限时&#xff0c;我先优化明显多余的复制&#xff0c;而不是猜测性地换容器。用借用传递只读数据通常就能减少分配&#xff1a; fn parse(line: &str) -> Result<Item, Error> { /* ... */ }用基准确认热点确实在分配&am…

2026/9/21 10:29:02

雨花区哪家财务公司代理记账比较好?

在雨花区&#xff0c;企业处理财税事务常常面临诸多挑战&#xff0c;选择一家靠谱的财务公司至关重要。湖南巨勤财务管理咨询有限公司就是本地正规实体财税服务机构&#xff0c;深耕本地工商财税行业多年&#xff0c;熟悉当地工商局、税务局最新政策与申报流程。主营公司注册、…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
咨询二维码