1、用到过的场景
2、饿汉模式(不要用)
| package com.cc.eed.sin; |
| |
| |
| |
| |
| |
| |
| |
| public class SingletonDemo2 { |
| |
| private static final SingletonDemo2 INSTANCE = new SingletonDemo2(); |
| |
| private SingletonDemo2(){ |
| } |
| |
| public static SingletonDemo2 getInstance() { |
| return INSTANCE; |
| } |
| |
| } |
3、懒汉模式(双重验证+锁)
| package com.cc.eed.sin; |
| |
| |
| |
| |
| |
| |
| |
| |
| public class SingletonDemo { |
| |
| private static volatile SingletonDemo INSTANCE; |
| |
| private SingletonDemo(){ |
| } |
| |
| public static SingletonDemo getInstance() { |
| if (INSTANCE == null) { |
| synchronized (SingletonDemo.class) { |
| if (INSTANCE == null) { |
| INSTANCE = new SingletonDemo(); |
| } |
| } |
| } |
| return INSTANCE; |
| } |
| |
| } |
| |
4、静态内部类模式(推荐)
| package com.cc.eed.singleton; |
| |
| |
| |
| |
| |
| |
| |
| public class SingletonDemo3 { |
| |
| private SingletonDemo3() { |
| } |
| |
| |
| |
| |
| private static final class InstanceHolder { |
| static final SingletonDemo3 INSTANCE = new SingletonDemo3(); |
| } |
| |
| public static SingletonDemo3 getInstance(){ |
| return InstanceHolder.INSTANCE; |
| } |
| } |
5、参考:
https://www.cnblogs.com/ladderx/p/16854962.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)