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

软件单例模式

单例模式

意图:保证一个类仅有一个实例,并提供一个访问它的全局访问点。

例子:数据库连接池、日志记录器、应用配置对象。java实现一个demo

以下是一个线程安全的单例模式实现示例,使用双重检查锁定(Double-Checked Locking)来确保高性能和线程安全:

public class Singleton {// 1. 私有静态 volatile 实例变量private static volatile Singleton instance;// 2. 私有构造方法,防止外部直接实例化private Singleton() {// 防止通过反射创建实例if (instance != null) {throw new IllegalStateException("Singleton already initialized");}}// 3. 全局访问点public static Singleton getInstance() {// 第一次检查:避免不必要的同步if (instance == null) {synchronized (Singleton.class) {// 第二次检查:确保只有一个线程能创建实例if (instance == null) {instance = new Singleton();}}}return instance;}// 示例方法public void showMessage() {System.out.println("Hello, I am a Singleton!");}// 测试代码public static void main(String[] args) {Singleton singleton = Singleton.getInstance();singleton.showMessage();// 验证单例Singleton anotherSingleton = Singleton.getInstance();System.out.println("Is same instance? " + (singleton == anotherSingleton)); // 输出 true}
}

http://www.dtcms.com/a/600947.html

相关文章:

  • 微服务搭建----springboot接入Nacos2.x
  • DataWhale-HelloAgents(第二部分:大语言模型基础)
  • 批量转换论文正文引用为上标后转PDF保持上标
  • 一个简洁的独立站(带产品管理功能+双语言)
  • 阿里巴巴网站建设建议广州网页设计机构
  • Hello-agents TASK02 第三章节 大模型基础
  • 深入理解cursor 中的mcp工作原理
  • Nginx 基础教程:从安装到核心配置(视频教程)
  • 实战指南:使用 CAN FD LIN网关进行嵌入式开发与协议转换
  • Excel插件:学校成绩统计与排名介绍
  • IBMS三维可视化集成系统产品介绍
  • 网站负责人核验现场拍摄照片电子件网站建设总结经验
  • 宇宙膨胀速度的光速极限:基于张祥前统一场论的第一性原理推导与观测验证
  • Custom SRP - 14 Multiple Cameras
  • QT开发汇总(更新2025.11.12)
  • HTML5 MathML:现代网页中的数学表达利器
  • wordpress admin head简述搜索引擎优化
  • DeepSeek-OCR实战(05):DeepSeek-OCR-WebUI部署(Docker)
  • CI/CD自动化部署革命:“三分钟流水线“背后的工程实践
  • 【工具】PixPin 电脑实用截图工具!带免费OCR截图/贴图/录屏/文字识别
  • 京东关键字搜索接口逆向:从动态签名破解到分布式请求调度
  • 第三章 大语言模型基础学习笔记
  • 莱芜网站设计公司制作图片文字的软件
  • 自己做本地视频网站商城网站开发的任务书
  • 通过 API 与 Gradio 构建 AI 应用
  • 【C++进阶】二叉树进阶
  • 【C++】多态(2):纯虚函数多态底层原理
  • C++/Linux小项目:自主shell命令解释器
  • MEMS振荡器MST8012抗冲击设计应对严苛振动环境
  • 【数据结构】常见的排序算法 -- 交换排序