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

单例模式都有哪些?有什么区别?

单例模式的5种实现方式及区别(Java版)

作为高频面试题,单例模式不仅要会写,更要理解每种写法的应用场景潜在风险。以下是5种经典实现,附带线程安全性分析适用场景对比。


1. 饿汉式(Eager Initialization)

java

复制

下载

public class Singleton {private static final Singleton INSTANCE = new Singleton(); // 类加载时就初始化private Singleton() {} // 私有构造public static Singleton getInstance() {return INSTANCE;}
}

✅ 优点:简单、线程安全(JVM类加载机制保证)
❌ 缺点:即使不用也会创建实例,可能浪费内存
🔹 适用场景:单例对象占用资源少,且程序启动就要用(如配置类)


2. 懒汉式(Lazy Initialization)

基础版(线程不安全)

java

复制

下载

public class Singleton {private static
http://www.dtcms.com/a/174198.html

相关文章:

  • 求组合数【递推+快速幂+卢卡斯+线性筛】
  • 单例模式的实现方法
  • Android数据库全栈开发实战:Room+SQLCipher+Hilt企业级应用构建
  • 解决Centos连不上网
  • 自定义一个 Spring Boot Starter -笔记
  • 广州华锐视点邀您参与2025广交会VRAR展【5月10-12日】
  • 大数据产品销售数据分析:基于Python机器学习产品销售数据爬虫可视化分析预测系统设计与实现
  • 20250506格式化NanoPi NEO开发板使用Ubuntu core16.04系统的TF启动卡
  • Spark 的 Shuffle 机制:原理与源码详解
  • 医疗健康软件专利:给生命科学装个 “智能防盗门“
  • vue项目中渲染markdown并处理报错
  • 电池热管理CFD解决方案,为新能源汽车筑安全防线
  • 汽车紧固件防腐3.0时代:敦普水性漆用无铬锌铝涂层定义「零氢脆」标准
  • 人工智能与生命科学的深度融合:破解生物医学难题,引领未来科技革命
  • Qt—鼠标移动事件的趣味小程序:会移动的按钮
  • 2025最新vmware-17虚拟机安装教程(保姆级,图文讲解,带安装包)
  • MySQL基础关键_009_DDL 和 DML(二)
  • 多线程2-多线程编程
  • 【Fifty Project - D23】
  • 从入门到登峰-嵌入式Tracker定位算法全景之旅 Part 7 |TinyML 定位:深度模型在 MCU 上的部署
  • 扩增子分析|微生物生态网络稳定性评估之鲁棒性(Robustness)和易损性(Vulnerability)在R中实现
  • Jetpack Compose 自定义 Slider 完全指南
  • Javase 基础加强 —— 05 Map集合
  • 图形化编程重塑 IoT 边缘开发:技术革新与生态竞合新范式
  • WebRTC ICE 服务器搭建
  • 【KWDB创作者计划】_通过一篇文章了解什么是 KWDB(KaiwuDB)
  • 【Docker系列】使用格式化输出与排序技巧
  • 【旅游网站设计与实现】基于SpringBoot + Vue 的前后端分离项目 | 万字详细文档 + 源码 + 数据库 + PPT
  • SQLite基本函数
  • 在 PyTorch 中借助 GloVe 词嵌入完成情感分析