- 博客(59)
- 收藏
- 关注
原创 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
原创 主键约束、唯一性约束、唯一性索引的区别
主键约束(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
原创 Spring Bean 的生命周期
Spring Bean 的生命周期,通过 "实例化→注入→初始化→销毁" 的阶段划分,结合接口与注解的扩展点,允许我们在各个环节介入自定义一些逻辑,从而能实现一些我们想要的效果。
2025-07-08 21:37:20
623
原创 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
原创 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-06 23:35:32
293
原创 迭代器模式
迭代器就是提供一种方法顺序访问一个聚合对象中的各个元素,而又不需要暴露该对象的内部表示。迭代器模式的主要思想是将集合的遍历行为抽取为单独的迭代器对象。
2025-01-16 23:44:51
285
原创 解释器模式
解释器模式为特定的语言定义文法(文法就是语法、规则的意思),并提供一个解释器来解析输入的语言(通常是字符串或符号序列)并执行相应的操作。解释器模式适用于需要处理复杂语法的场景,常见于编程语言的解释器、表达式计算器、配置文件解析等。
2025-01-06 23:29:38
345
原创 责任链模式
责任链模式是一种处理请求的模式,它让多个处理器都有机会处理该请求,直到其中某个处理成功为止。每个处理器都包含对下一个处理器的引用,从而形成链式结构。责任链模式把多个处理器串成链,然后让请求在链上进行传递。
2024-12-18 22:53:00
352
Java + LibreOffice + Excel转换为PDF + 工具类
2025-01-23
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅