自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Redis 缓存穿透、缓存击穿、缓存雪崩

缓存是系统的第一道防线,但它有三种典型的 "失守" 场景——穿透、击穿、雪崩。

2026-09-21 22:52:17 165

原创 Redis 数据结构:从五种基础到四种高级

Redis 表面上是九种数据类型,底层实际由更少的编码结构组合而成。Redis 会根据数据量和元素大小自动选择编码,小数据用紧凑结构省内存,大数据切换到高效结构保性能。

2026-09-21 22:51:15 436

原创 Windows 安装 OpenClaw 记录

本文分享了在Windows 11系统下安装OpenClaw的经验。作者介绍了两种教程的配合使用方法:先按教程1安装,遇到问题时参考教程2排错。建议初学者选择有免费额度的QWen模型,并详细说明了修改配置文件和重启服务的步骤。

2026-03-31 20:32:20 470

原创 Java 中的 实现、泛型

实现  是类对接口行为规范的 "兑现",核心作用是弥补单继承不足、定义行为标准,是接口多态的基础;泛型 参数化类型,编译时检查类型安全,消除强制转换,核心是类型参数(T/E 等),实现代码复用。

2026-03-31 20:32:01 227

原创 Java 中的 封装、继承、多态

封装 - 隐藏内部细节,对外暴露可控接口。继承 - 子类复用父类代码并扩展功能,核心是extends。多态 - 父类引用指向子类对象,同一方法调用表现不同行为。

2026-02-11 20:46:59 295

原创 MyBatis XML 里<![CDATA[ ]]>的使用

<![CDATA[ ]]> 是 MyBatis 中处理 SQL 语句与 XML 语法冲突的安全屏障。对包含 特殊字符 的 SQL 片段进行最小范围的 CDATA 包裹,既保证了安全,又确保了 MyBatis 动态 SQL 功能的完整性。

2026-02-11 20:44:10 462

原创 new JSONObject(original) 是浅拷贝

当我们在上下文中使用JSON对象时,总是假设需要深拷贝,除非我们能明确使用浅拷贝是符合需求,跟我们想要的结果是一致的。

2026-01-20 20:11:31 108

原创 为什么 IO 流通常只能被读取一次

IO 流只能读取一次,是 精心设计的,贴合操作系统文件 / 网络 IO 的 "顺序消费" 特性,保持和底层系统的一致性。

2026-01-20 20:11:08 432

原创 JVM 堆内存分代

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

2026-01-07 20:34:09 920

原创 try-with-resources 详解

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

2026-01-07 20:25:32 385

原创 StackOverFlowError 和 OutOfMemoryError 的区别

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

2025-12-29 19:18:48 983

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

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

2025-12-29 19:16:55 432

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

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

2025-12-09 21:29:40 678

原创 企业微信相关文档

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

2025-12-09 21:25:55 483

原创 JRebel + 本地激活

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

2025-12-09 21:25:34 1297

原创 JVM的组成部分

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

2025-09-02 19:55:13 683

原创 数据库的锁级别

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

2025-09-02 19:54:40 1240

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

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

2025-08-13 22:58:00 493

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

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

2025-08-13 22:57:01 1215

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

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

2025-08-05 20:54:48 781

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

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

2025-08-05 20:54:22 325

原创 数据库事务 ACID

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

2025-07-22 22:02:46 1193

原创 数据库隔离级别

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

2025-07-22 21:55:50 1021

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

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

2025-07-08 21:38:00 475

原创 Spring Bean 的生命周期

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

2025-07-08 21:37:20 645

原创 MySQL索引失效场景

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

2025-06-30 23:28:41 356

原创 MySQL EXPLAIN 关键字详解

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

2025-06-30 23:26:49 1081

原创 BIO、NIO、AIO的区别

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

2025-06-09 22:24:44 522

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

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

2025-06-09 21:53:02 1416

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

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

2025-05-29 22:24:16 411

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

MySQL查询语句的执行顺序。

2025-05-29 22:02:51 686

原创 算法的时间复杂度

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

2025-04-16 23:23:55 754

原创 MyBatis-Plus 的 FieldStrategy 属性

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

2025-04-10 23:03:11 1258

原创 @Resource 和 @Autowired 的区别

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

2025-03-31 23:21:00 641

原创 访问者模式

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

2025-03-21 23:14:51 523

原创 模板方法模式

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

2025-03-13 22:38:59 407

原创 策略模式

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

2025-03-06 22:37:23 732

原创 状态模式

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

2025-02-26 23:39:22 633

原创 观察者模式

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

2025-02-18 23:16:52 457

原创 备忘录模式

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

2025-02-11 22:50:27 581

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

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