当前位置: 首页 > 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

相关文章:

  • 求组合数【递推+快速幂+卢卡斯+线性筛】
  • 单例模式的实现方法
  • 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 上的部署
  • 美国与胡塞武装达成停火协议,美伊相向而行?
  • 高进华“控股”后首份年报出炉,史丹利账上可动资金大幅缩水
  • 计划招录2577人,“国考”补录8日开始报名
  • 巴基斯坦宣布关闭全国空域48小时
  • 深圳一购房者交首付后迟迟无法签合同,澎湃介入后开发商承诺退款
  • 为什么有的人闻到烟味,会咳嗽、胸闷?别再伤害身边的人