单例设计模式
通过单例模式可以保证系统中一个类只有一个实例
饿汉式
* 有点:保证线程安全。 * 缺点:性能大大下降

1 package 单例设计模式; 2 3 public class 饿汉式 { 4 5 /** 6 * @param args 7 */ 8 public static void main(String[] args) { 9 Singleton1 s = Singleton1.getInstance(); 10 } 11 } 12 class Singleton1{ 13 //1.私有构造方法,其他类无法使用 14 private Singleton1(){} 15 //2.声明引用 16 private static Singleton1 s = new Singleton1(); 17 public static Singleton1 getInstance(){ 18 return s; 19 } 20 }
懒汉式
* 有点:保证线程安全
* 缺点:性能大大下降

1 package 单例设计模式; 2 3 public class 懒汉式 { 4 5 /** 6 * @param args 7 */ 8 public static void main(String[] args) { 9 Singleton2 s = Singleton2.getInstance(); 10 } 11 } 12 13 class Singleton2{ 14 //1.私有化构造函数 15 private Singleton2(){} 16 //2.声明变量 17 private static Singleton2 s; 18 //3.为变量实例化 19 public static Singleton2 getInstance(){ 20 if(s==null){ 21 s = new Singleton2(); 22 } 23 return s; 24 } 25 }
/*
* 饿汉式和懒汉式的区别
* 1,饿汉式是空间换时间,懒汉式是时间换空间
* 2,在多线程访问时,饿汉式不会创建多个对象,而懒汉式有可能会创建多个对象
*/
第三种

1 package 单例设计模式; 2 3 public class 第三种 { 4 5 /** 6 * @param args 7 */ 8 public static void main(String[] args) { 9 Singleton3 s = Singleton3.s; 10 } 11 12 } 13 class Singleton3{ 14 private Singleton3(){} 15 public static final Singleton3 s = new Singleton3(); 16 }
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何在 .NET 中 使用 ANTLR4
· 后端思维之高并发处理方案
· 理解Rust引用及其生命周期标识(下)
· 从二进制到误差:逐行拆解C语言浮点运算中的4008175468544之谜
· .NET制作智能桌面机器人:结合BotSharp智能体框架开发语音交互
· 想让你多爱自己一些的开源计时器
· Cursor预测程序员行业倒计时:CTO应做好50%裁员计划
· 大模型 Token 究竟是啥:图解大模型Token
· 用99元买的服务器搭一套CI/CD系统
· 如何在 .NET 中 使用 ANTLR4