自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 JVM 堆内存分代

不同存活周期的对象放在不同区域,用不同算法回收,保证 GC 效率,这就是 "分代回收" 的核心思想。

2026-01-07 20:34:09 630

原创 try-with-resources 详解

try-with-resources 是 Java 开发中资源管理的首选方式,大大减少了资源泄漏的风险,提高了代码的可读性和可维护性。

2026-01-07 20:25:32 206

原创 StackOverFlowError 和 OutOfMemoryError 的区别

StackOverFlowError:栈内存不够深(线程调用 栈深度 超出限制);OutOfMemoryError:目标内存区域不够大(堆、方法区等共享内存区域 容量耗尽,无法为新对象分配足够空间)。

2025-12-29 19:18:48 902

原创 Java 哪些情况会导致内存泄漏

内存泄漏 是指对象 已经不再被程序使用,但因为某些原因 无法被垃圾回收器回收,长期占用内存,最终可能引发 OOM(OutOfMemoryError)。

2025-12-29 19:16:55 357

原创 MySQL 筛选条件放 ON 后 vs 放 WHERE 后

ON 决定如何 "连接" 表,WHERE 决定连接后 "显示" 哪些行。 这个根本区别导致了在 LEFT JOIN / RIGHT JOIN 外连接中,条件放置位置会产生巨大影响;而在 INNER JOIN 中,效果通常 等价。

2025-12-09 21:29:40 636

原创 企业微信相关文档

整理了企业微信开发相关资源文档,包括企业微信开发者官方文档、WxJava开源项目地址及其企业微信模块(weixin-java-cp)的API文档,以及开发者整理的在线文档,同时提供了企业微信管理后台登录入口。

2025-12-09 21:25:55 280

原创 JRebel + 本地激活

JRebel 本地激活,在 GitHub 下载完资源后,本地运行 MainServer.java,激活后,将配置改为 work offline。

2025-12-09 21:25:34 469

原创 JVM的组成部分

Java Virtual Machine(Java 虚拟机),可以把它理解成一个 "虚拟的计算机"—— 它不是真实的硬件设备,而是一段能运行 Java 字节码的程序。

2025-09-02 19:55:13 651

原创 数据库的锁级别

锁是数据库保证 并发一致性 的重要手段,不同锁级别决定了锁的粒度和范围,从而影响并发性能与数据安全性。

2025-09-02 19:54:40 1192

原创 MySQL查询表结构、表大小

MySQL查询表结构、表大小,分析更新统计信息。

2025-08-13 22:58:00 431

原创 主键约束、唯一性约束、唯一性索引的区别

主键约束(Primary Key Constraint)、唯一性约束(Unique Constraint)、唯一性索引(Unique Index)是保证数据唯一性的三种机制,但它们的语义、作用、实现方式有一定区别。

2025-08-13 22:57:01 1125

原创 聚集索引与非聚集索引的区别

聚集索引(Clustered Index)和非聚集索引(Non-Clustered Index)是索引设计的核心概念,二者的本质区别体现在 与数据物理存储的关联方式 上,这种区别直接决定了它们的性能特性和适用场景。

2025-08-05 20:54:48 752

原创 服务之间远程Feign调用,出现参数丢失

在Tomcat中,Request以及Response对象是会被 循环使用 的。如果在 异步 方法里(比如使用 @Async等)使用 HtttpServletRequest 对象,有可能会导致请求参数不被解析,从而报错 org.springframework.web.bind.MissingServletRequestParameterException: Required long parameter 'xxx' is not present。

2025-08-05 20:54:22 290

原创 数据库事务 ACID

数据库 ACID 是指数据库在执行事务(Transaction)时需要保证的四个特性,即原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)和持久性(Durability)。这些特性确保了数据库事务的可靠性,即使在系统故障或并发访问的情况下,也能维护数据的完整性。

2025-07-22 22:02:46 1147

原创 数据库隔离级别

SQL 标准定义了 4 种隔离级别,从低到高依次为:读未提交→读已提交→可重复读→串行化。隔离级别越高,对并发问题的解决能力越强,但对性能的消耗也越大(因限制了并发操作)。

2025-07-22 21:55:50 983

原创 INNER JOIN, LEFT JOIN, RIGHT JOIN 的区别

JOIN 作为数据库操作的核心概念,用于合并两个或多个表中的数据。

2025-07-08 21:38:00 426

原创 Spring Bean 的生命周期

Spring Bean 的生命周期,通过 "实例化→注入→初始化→销毁" 的阶段划分,结合接口与注解的扩展点,允许我们在各个环节介入自定义一些逻辑,从而能实现一些我们想要的效果。

2025-07-08 21:37:20 623

原创 MySQL索引失效场景

MySQL 索引优化是提升查询性能的关键手段之一,但有时使用不当会导致索引失效。

2025-06-30 23:28:41 321

原创 MySQL EXPLAIN 关键字详解

EXPLAIN 是用于分析 SQL 查询的执行计划。它能揭示 MySQL 如何执行查询(如是否使用索引、表连接顺序等),帮助我们定位性能瓶颈。

2025-06-30 23:26:49 1019

原创 BIO、NIO、AIO的区别

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

2025-06-09 22:24:44 475

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

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

2025-06-09 21:53:02 1352

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

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

2025-05-29 22:24:16 368

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

MySQL查询语句的执行顺序。

2025-05-29 22:02:51 651

原创 算法的时间复杂度

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

2025-04-16 23:23:55 682

原创 MyBatis-Plus 的 FieldStrategy 属性

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

2025-04-10 23:03:11 1117

原创 @Resource 和 @Autowired 的区别

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

2025-03-31 23:21:00 597

原创 访问者模式

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

2025-03-21 23:14:51 499

原创 模板方法模式

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

2025-03-13 22:38:59 384

原创 策略模式

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

2025-03-06 22:37:23 690

原创 状态模式

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

2025-02-26 23:39:22 606

原创 观察者模式

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

2025-02-18 23:16:52 439

原创 备忘录模式

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

2025-02-11 22:50:27 557

原创 中介者模式

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

2025-02-06 23:35:32 293

原创 迭代器模式

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

2025-01-16 23:44:51 285

原创 解释器模式

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

2025-01-06 23:29:38 345

原创 命令模式

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

2024-12-25 23:36:13 276

原创 责任链模式

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

2024-12-18 22:53:00 352

原创 代理模式

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

2024-12-11 23:38:33 334

原创 享元模式

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

2024-12-04 23:17:22 324

原创 外观模式

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

2024-11-27 23:45:37 208

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关注的人

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