自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(40)
  • 收藏
  • 关注

原创 BIO、NIO、AIO的区别

BIO/NIO/AIO 本质上是 I/O 模型,不仅用于网络通信(如 Socket),也适用于 文件读写、磁盘、数据库连接等所有输入/输出操作(I/O)。它们是 Java 对于底层操作系统 I/O 能力的封装方式。

2025-06-09 22:24:44 390

原创 @Transactional 什么情况下会失效

@Transactional 注解在 Spring 中用于声明式事务管理,但在某些场景下会失效。如果遇到事务失效的问题,可以逐一排查这些情况。

2025-06-09 21:53:02 1054

原创 @ModelAttribute、@RequestBody、@RequestParam、@PathVariable 注解对比

接收参数注解 @ModelAttribute、@RequestBody、@RequestParam、@PathVariable 对比。

2025-05-29 22:24:16 237

原创 MySQL 查询语句的执行顺序

MySQL查询语句的执行顺序。

2025-05-29 22:02:51 564

原创 算法的时间复杂度

时间复杂度O是表示算法运行时间与输入数据规模(通常用 n 表示)之间的关系。算法执行时间随输入数据规模增长的变化趋势。

2025-04-16 23:23:55 396

原创 MyBatis-Plus 的 FieldStrategy 属性

FieldStrategy 是 MyBatis-Plus 灵活性的重要体现,合理使用可以大大简化数据持久层代码,同时可以保证数据操作的精确性和安全性。

2025-04-10 23:03:11 428

原创 @Resource 和 @Autowired 的区别

@Autowired 和 @Resource 都用于在 Spring 中进行依赖注入,但在来源、注入方式、支持的参数和用法上存在一些差异。

2025-03-31 23:21:00 475

原创 访问者模式

访问者模式主要用于分离算法和对象结构,从而在不修改原有对象的情况下扩展新的操作。它适用于数据结构相对稳定,而操作(行为)容易变化的场景。

2025-03-21 23:14:51 439

原创 模板方法模式

模板方法模式定义了一个操作中的算法骨架,并将一些步骤延迟到子类中实现。模板方法模式基于继承机制。模板方法模式在类层次上运作,因此它是静态的。

2025-03-13 22:38:59 350

原创 策略模式

策略模式通过将算法封装在独立的策略类中,并在运行时动态选择算法,提供了一种灵活、可扩展的解决方案,能够有效地消除冗长的条件语句,提高系统的可维护性和扩展性。

2025-03-06 22:37:23 627

原创 状态模式

状态模式允许对象在其内部状态改变时改变其行为,使其看上去就像改变了自身所属的类一样。

2025-02-26 23:39:22 570

原创 观察者模式

观察者模式是一种一对多的通知机制,让发送通知的一方(被观察者)和接收通知的一方(观察者)能彼此分离,互不影响。

2025-02-18 23:16:52 406

原创 备忘录模式

备忘录模式的核心思想是将对象的状态保存在一个独立的对象中,这样既能保持对象的封装性,又能方便地恢复对象到之前的状态。

2025-02-11 22:50:27 525

原创 中介者模式

中介者模式的目的是把多方会谈变成双方会谈,从而实现多方的松耦合。用一个中介对象来封装一系列的对象交互。这样,系统中的各个对象不直接互相引用,而是通过中介者进行交互,从而降低了系统的耦合度。

2025-02-06 23:35:32 265

原创 迭代器模式

迭代器就是提供一种方法顺序访问一个聚合对象中的各个元素,而又不需要暴露该对象的内部表示。迭代器模式的主要思想是将集合的遍历行为抽取为单独的迭代器对象。

2025-01-16 23:44:51 256

原创 解释器模式

解释器模式为特定的语言定义文法(文法就是语法、规则的意思),并提供一个解释器来解析输入的语言(通常是字符串或符号序列)并执行相应的操作。解释器模式适用于需要处理复杂语法的场景,常见于编程语言的解释器、表达式计算器、配置文件解析等。

2025-01-06 23:29:38 299

原创 命令模式

命令模式把请求或者命令封装成一个对象,从而让我们可以使用不同的请求、队列或日志请求、以及支持可撤销的操作等功能。

2024-12-25 23:36:13 254

原创 责任链模式

责任链模式是一种处理请求的模式,它让多个处理器都有机会处理该请求,直到其中某个处理成功为止。每个处理器都包含对下一个处理器的引用,从而形成链式结构。责任链模式把多个处理器串成链,然后让请求在链上进行传递。

2024-12-18 22:53:00 329

原创 代理模式

代理模式通过封装一个已有接口,让调用方在不改变任何代码的前提下增强某些功能。

2024-12-11 23:38:33 300

原创 享元模式

享元模式旨在有效共享对象,避免重复创建相同内容的对象,减少内存开销,让你能在有限的内存中载入更多对象。

2024-12-04 23:17:22 289

原创 外观模式

外观模式旨在将客户端与多个复杂子系统的交互进行解耦,客户端无需了解子系统的内部实现细节,只需要通过外观类提供的接口与系统进行交互。

2024-11-27 23:45:37 177

原创 装饰器模式

封装器是装饰模式的别称,封装器实现了与其封装对象相同的接口。我们可以将一个对象放入多个封装器中,并在对象中添加所有这些封装器的组合行为。

2024-11-20 23:19:37 269

原创 组合模式

组合模式将对象组合成树形结构以表示部分-整体的层次结构。通过组合模式,可以统一处理单个对象和对象集合,简化了对复杂树形结构的操作。

2024-10-30 23:29:40 174

原创 桥接模式

桥接模式的定义颇为玄乎。其主要目的是将抽象部分与实现部分分离,使它们可以独立变化。简单地来说,桥接模式通过引入一个抽象层和具体实现层之间的桥梁,来减少二者之间的耦合度。

2024-10-22 23:07:03 351

原创 适配器模式

将一个类的接口转换成我们希望的另外一个接口,使得原本由于接口不兼容而不能一起工作的那些类可以一起工作,就是适配器。适配器模式旨在解决不同接口之间的兼容性问题。

2024-10-12 00:03:58 296

原创 原型模式

原型模式的本质是拷贝原型来创建新的对象,需要批量创建新对象且都是同一个类的对象的时候可以考虑使用原型模式。

2024-10-07 23:07:05 364

原创 生成器模式

生成器模式将复杂对象的构建过程封装在生成器内部,使得客户端代码更简洁、清晰。当产品较为复杂且需要详细配置时,使用生成器模式才更有意义。

2024-09-30 22:10:21 401

原创 抽象工厂模式

抽象工厂模式是一个稍微复杂的创建型模式。抽象工厂模式是工厂模式的进阶版,提供更高层次的抽象,在创建产品时避免直接依赖具体的类。

2024-09-26 23:35:36 418

原创 工厂方法模式

工厂方法模式通过一个工厂方法来决定实例化哪个类对象,而不是直接在代码中使用 new 来创建对象。定义一个接口或抽象类,用于声明创建对象的方法,而具体的子类负责实现这个方法并返回相应的对象。

2024-09-19 00:15:03 489

原创 单例模式

单例模式属于创建型模式的一种。单例模式是为了保证一个程序的运行期间,某个类有且只有一个全局唯一实例。在框架中,我们一般会通过约定的方式,把普通类视为单例。

2024-09-11 23:23:17 414

原创 设计模式概述

设计模式总共有23种。创建型模式:工厂方法、抽象工厂、建造者、原型、单例;结构型模式:适配器、桥接、组合、装饰器、外观、享元、代理;行为型模式:责任链、命令、解释器、迭代器、中介、备忘录、观察者、状态、策略、模板方法、访问者。

2024-09-05 23:31:49 560

原创 MySQL中INSERT INTO ... ON DUPLICATE KEY UPDATE浅析

INSERT INTO ... ON DUPLICATE KEY UPDATE语法,如果数据库没有数据,就会新增一条数据,如果有数据,就会根据唯一键进行更新对应的值。

2024-08-26 22:57:53 693

原创 Java8提供的Stream方式进行分组GroupingBy

有时我们需要对集合进行分组操作,这时可以使用Java8提供的Stream方式进行分组。挺好用的,此处记录下。

2024-08-17 23:17:28 620

原创 在不同形式的for循环中使用break、continue、return的效果

我们在循环中,经常会有跳出循环,跳出本次循环继续下次循环等的场景,今天我们简单分享下。主要使用到的关键字是,break、continue、return。

2024-08-12 23:30:37 626

原创 启动Node.js前端项目

启动Node.js前端项目的过程中,主要遇到两个问题,一是有些依赖版本之间不兼容,得根据报错,网上按着找下解决方法;二是没有Git权限,这是我不够仔细造成的,得注意。

2024-08-05 23:15:00 326

原创 Python版本与Jupyter记录

使用Python的一些心得与记录,Python版本与Jupyter记录。

2024-07-31 08:15:00 474

原创 Word转Pdf方式

Word转Pdf方式

2024-06-30 23:56:28 812

原创 IntelliJ IDEA 中 ctrl + w 一键选中双引号中的字符串内容

IntelliJ IDEA 中 把鼠标光标放在前双引号(")后,按 ctrl + w,即可一次全选中字符串中的内容。

2024-04-08 23:27:10 784

原创 InheritableThreadLocal 父子线程值传递

为什么InheritableThreadLocal 可以进行父子线程之间的值传递呢?因为InheritableThreadLocal 拷贝值的时候,是 深拷贝。

2024-03-05 00:10:16 210

原创 集成Nacos

版本统一:Spring Boot2.6.11,Spring Cloud2021.0.4,Spring Cloud Alibaba2021.0.4.0。

2023-08-11 00:00:49 250 2

Java + 加密算法 + 工具类

该工具类中包括MD5、SHA-256加密算法。

2025-01-23

Java + byte转换工具类

Byte转换、进制转换。

2025-01-23

Java + LibreOffice + Excel转换为PDF + 工具类

该资源是使用 libreoffice 将 excel 转换为 pdf。 ps:需要事先将 libreoffice 安装好。

2025-01-23

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除