摘要: 1、引用概述 在栈上的reference类型存储的数据代表某块内存地址,称reference为某内存、某对象的引用。实际上引用分为很多种,从强到弱分为:强引用 > 软引用 > 弱引用 > 虚引用。平常我们使用的引用实际上是强引用,各种引用有自己的特点,强引用就是Java中普通的对象,而软引用、弱引用 阅读全文
posted @ 2024-04-27 17:23 jingyi_up 阅读(2) 评论(0) 推荐(0) 编辑
摘要: 1、Body 参数 可以使用 @RequestBody 或 @RequestParam,也可以不使用任何注解。 @RequestBody 主要用来接收前端传递给后端的 json 格式的数据的(请求体中的数据的)。 它只有一个属性-required,表示参数是否必须要传,默认为 true。此时前端请求 阅读全文
posted @ 2024-04-22 22:44 jingyi_up 阅读(5) 评论(0) 推荐(0) 编辑
摘要: 1、log4j2的使用 Java 中常用的日志框架: • logback:Spring Boot 默认使用的日志框架,具有自动压缩日志、支持多样化配置、不需要重启就可以恢复 I/O 异常等特点。 • log4j2:在性能方面比 logback 更加优秀,使用上与之前版本 log4j 没什么区别(lo 阅读全文
posted @ 2024-04-17 12:43 jingyi_up 阅读(47) 评论(0) 推荐(0) 编辑
摘要: 1、适配器模式原理 适配器模式的英文翻译是 Adapter Design Pattern。顾名思义,这个模式就是用来做适配的,它将不兼容的接口转换为可兼容的接口,让原本由于接口不兼容而不能一起工作的类可以一起工作。对于这个模式,有一个经常被拿来解释它的例子,就是 USB 转接头充当适配器,把两种不兼 阅读全文
posted @ 2024-04-16 11:41 jingyi_up 阅读(3) 评论(0) 推荐(0) 编辑
摘要: 1、从经典的 Java IO 来了解装饰器模式 Java IO 类库非常庞大和复杂,有几十个类,负责 IO 数据的读取和写入。如果对 Java IO 类做一下分类,我们可以从下面两个维度将它划分为四类。具体如下所示: 针对不同的读取和写入场景,Java IO 又在这四个父类基础之上,扩展出了很多子类 阅读全文
posted @ 2024-04-16 10:48 jingyi_up 阅读(3) 评论(0) 推荐(0) 编辑
摘要: 1、代理模式原理 代理模式在不改变原始类(或叫被代理类)代码的情况下,通过引入代理类来给原始类附加功能。下面通过一个性能计数器的例子来看下。 现在要开发一个 MetricsCollector 类,用来收集接口请求的原始数据,比如访问时间、处理时长等。在业务系统中,我们采用如下方式来使用这个 Metr 阅读全文
posted @ 2024-04-16 00:19 jingyi_up 阅读(2) 评论(0) 推荐(0) 编辑
摘要: 1、原型模式的原理 如果对象的创建成本比较大,而同一个类的不同对象之间差别不大(大部分字段都相同),在这种情况下,我们可以利用对已有对象(原型)进行复制(或者叫拷贝)的方式来创建新对象,以达到节省创建时间的目的。这种基于原型来创建对象的方式就叫作原型设计模式(Prototype Design Pat 阅读全文
posted @ 2024-04-12 16:57 jingyi_up 阅读(3) 评论(0) 推荐(0) 编辑
摘要: 建造者模式也称为 Builder 模式,在开发中也是经常用到的,下面围绕两个问题来看下: 1、为什么需要建造者模式 假设在开发中我们有这样一个需求:需要定义一个资源池配置类 ResourcePoolConfig。这里的资源池,你可以简单理解为线程池、连接池、对象池等。在这个资源池配置类中,有以下几个 阅读全文
posted @ 2024-04-12 12:03 jingyi_up 阅读(8) 评论(0) 推荐(0) 编辑
摘要: 工厂模式分为:简单工厂、工厂方法、抽象工厂(了解即可) 1、工厂模式的作用 这也是考虑要不要使用工厂模式的标准: ——封装变化:创建逻辑有可能变化,封装成工厂类之后,创建逻辑的变更对调用者透明。 ——代码复用:创建代码抽离到独立的工厂类之后可以复用。 ——隔离复杂性:封装复杂的创建逻辑,调用者无需了 阅读全文
posted @ 2024-04-11 18:16 jingyi_up 阅读(5) 评论(0) 推荐(0) 编辑
摘要: 1、为什么使用单例(能解决什么问题) (1)处理资源访问冲突 自定义实现了一个往文件中打印日志的 Logger 类。具体的代码实现如下所示: public class Logger { private FileWriter writer; public Logger() { File file = 阅读全文
posted @ 2024-04-10 16:53 jingyi_up 阅读(2) 评论(0) 推荐(0) 编辑