java单列设计模式
2021/5/3 14:25:33
本文主要是介绍java单列设计模式,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
一.什么是单例设计模式
- 保证类在内存中只有一个对象。
二.如何保证类在内存中只有一个对象
- 控制类的创建,不让其他类来创建本类的对象
- 在本类中定义一个本类的对象
- 提供公共的访问方式
三.单例的两种写法
- 饿汉式(开发用这种方式)
class Single { private Single(){} //1.私有构造函数 private static Single s = new Single(); //2.创建本类对象 public static Single getInstance() { //3.对外提供公共的访问方法 return s; } } class UseSingle { public static void print() { //4.使用饿汉式单列 Singleton s = Singleton.getInstance(); } }
- 懒汉式(面试写这种方式,多线程的问题)
//懒汉式,单例的延迟加载模式 class Single { private Single(){}; //1.私有构造函数 private static Single s; //2.声明一个本类的引用 public static Single getInstance(){ //3.对外提供公共的访问方法 if(s == null){ //线程1,线程2 s = new Single(); return s; } } }
- 第三种格式(很少用)
class Single { private Single(){}; public static final Single s = new Single();//final是最终的意思,被final修饰的变量不可以被更改 }
四.饿汉式和懒汉式区别
- 线程安全
*饿汉式天生就是线程安全的,可以直接用于多线程而不会出现问题.
*懒汉式本身是非线程安全的. - 资源加载和性能
*饿汉式用空间换时间
*懒汉式用时间换空间
这篇关于java单列设计模式的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-05-15鸿蒙生态设备数量超8亿台
- 2024-05-13TiDB + ES:转转业财系统亿级数据存储优化实践
- 2024-05-09“2024鸿蒙零基础快速实战-仿抖音App开发(ArkTS版)”实战课程已上线
- 2024-05-09聊聊如何通过arthas-tunnel-server来远程管理所有需要arthas监控的应用
- 2024-05-09log4j2这么配就对了
- 2024-05-09nginx修改Content-Type
- 2024-05-09Redis多数据源,看这篇就够了
- 2024-05-09Google Chrome驱动程序 124.0.6367.62(正式版本)去哪下载?
- 2024-05-09有没有大佬知道这种数据应该怎么抓取呀?
- 2024-05-09这种运行结果里的10.100000001,怎么能最快改成10.1?