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-31全网首发第二弹!软考2024年5月《软件设计师》真题+解析+答案!(11-20题)
- 2024-05-31全网首发!软考2024年5月《软件设计师》真题+解析+答案!(21-30题)
- 2024-05-30【Java】百万数据excel导出功能如何实现
- 2024-05-30我们小公司,哪像华为一样,用得上IPD(集成产品开发)?
- 2024-05-30java excel上传--poi
- 2024-05-30安装笔记本应用商店的pycharm,再安排pandas等模块,说是没有打包工具?
- 2024-05-29java11新特性
- 2024-05-29哪些无用敏捷指标正在破坏敏捷转型?
- 2024-05-29鸿蒙原生应用再新丁!新华社 入局鸿蒙
- 2024-05-29设计模式 之 迭代器模式(Iterator)