Java -- 单例模式
2023-09-11 14:21:34 时间
什么是设计模式?
是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。
使用设计模式的目的是什么呢?
使用设计模式是为了可重用代码、让我们的代码更容易被他人理解、保证代码的可靠性更高。
设计模式又哪些呢?最基本有23种。
单例模式
有些对象我们只需要一个,比如:配置文件、工具类、线程池、缓存、日志对象等
如果创造出多个实例,就会导致许多问题,比如占用过多的资源,不一致的结果等。
通过单例模式能够保证整个应用中某个实例有且只有一个。
常用的单例模式有两种:饿汉模式和懒汉模式。
饿汉单例模式:
1 public class Singleton { 2 private static final Singleton singleton = new Singleton(); 3 private Singleton() { 4 } 5 /* 6 * 通过static可以将这个方法变成类方法 7 * 使她变为类所有 8 */ 9 public static Singleton getSingleton() 10 { 11 return singleton; 12 } 13 /* 14 * 我有点不理解了,为啥要static和final,看样子基础还不够 15 */ 16 }
为什么叫饿汉模式:因为这个单例对象还没使用就创建好了。
下面介绍下单例模式中的懒汉模式:
1 public class Singleton { 2 //这个地方我们只是声明一个引用 3 private static Singleton singleton; 4 private Singleton() { 5 } 6 /* 7 * 懒汉模式就是在获取实例的方法中添加判断语句 8 */ 9 public static Singleton getSingleton() 10 { 11 if (singleton == null) { 12 singleton = new Singleton(); 13 } 14 return singleton; 15 } 16 }
下面讲讲饿汉模式和懒汉模式的区别:
区别:
饿汉模式的特点是加载类时比较慢,但运行时获取对象的速度比较快,线程安全的
懒汉模式的特点是加载类时比较快,但运行时获取对象的速度比较慢,线程不安全的
便于记忆我说两句:
饿汉模式也就是还没用就有对象实例了,这样时线程安全的,都准备好了,当然安全了。
反过来懒汉模式在需要的开始才创建对象实例,也就是刚开始还没准备好,万一直接进入线程不就不安全了嘛~
学习笔记 来自 《幕课网》
相关文章
- [Java 基础] 使用java.util.zip包压缩和解压缩文件
- Java面向对象高级--Object类
- 【Code Tools】Java微基准测试工具JMH之入门篇
- JAVA学习(三):Java基础语法(变量、常量、数据类型、运算符与数据类型转换)
- Java实现 LeetCode 554 砖墙(缝隙可以放在数组?)
- java实现股票的风险
- java实现取字母组成串
- Java实现完美洗牌算法
- Eclipse Java注释模板设置简介,更改字体大小
- 【JAVA】MacBook安装Java环境及eclipse
- 【java设计模式】之 抽象工厂(Abstract Factory)模式
- 掌握Java命令模式:将请求封装成对象,解耦发送者和接收者的关系
- 【java】Java生成微信小程序二维码
- Java 线程池 Executor浅入浅出
- java中的transient 详细总结Java中transient关键字 对象写出流ObjectOutputStream 对象写入流ObjectInputStream
- Java设计模式偷跑系列(十八)建模和责任链模式的实现
- Java:openjdk: error: Student is abstract; cannot be instantiated;java编译环境
- LEADTOOLS 22-23 .Net/NetCore/JS/JAVA/Win/Linux
- Linux的java服务配置步骤