自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【MySQL 事务全方位解析】:从基础概念到底层实现,一篇搞定!

本文深入解析MySQL事务的核心原理与实践应用。首先介绍事务的ACID特性(原子性、一致性、隔离性、持久性)及其在转账等业务场景中的体现。然后探讨并发事务可能产生的脏读、不可重复读和幻读问题,分析四种隔离级别的适用场景。重点剖析事务的底层实现机制,包括三大日志(redo log/undo log/binlog)、MVCC、锁机制和两阶段提交的工作原理及其与ACID特性的对应关系。最后给出避免长事务、合理选择隔离级别、处理锁冲突等实战建议,帮助开发者正确使用事务保障数据一致性。

2025-12-01 16:53:16 1621

原创 【Docker 从入门到实战】——解决跨环境部署痛点的完整指南

本文讲解 Docker 从基础到实战的完整知识体系,围绕容器化技术解决跨环境部署痛点展开。先介绍 Docker 核心优势、架构组件与 "不可变基础设施" 理念,再详解服务、镜像、容器的常用命令,以及数据卷持久化方案。重点实战了 MySQL、Tomcat 等中间件部署,和 SpringBoot 项目镜像构建流程,还涵盖 Docker Compose 服务编排与私有仓库应用。通过对比容器与传统虚拟机的差异,凸显其轻量、高效、可移植特性。帮助读者快速掌握 Docker 核心技能,解决实际问题

2025-11-29 15:35:25 2138

原创 【LeetCode热题100】No.15——三数之和

本文讲解 LeetCode 热题 100 中的 “三数之和” 题,介绍其最优解法:排序 + 双指针法。先对数组排序,遍历固定第一个元素(同时剪枝、去重),再用双指针找另外两个元素,通过调整指针逼近 “和为 0” 的目标,过程中同步去重。该方法将时间复杂度从 O (n³) 降至 O (n²),空间复杂度为 O (log n),既高效搜索三元组,又避免重复结果,还通过案例验证了正确性,是数组类问题中 “排序 + 双指针” 技巧的典型应用。

2025-11-28 10:21:38 1888

原创 LambdaQueryWrapper 和 QueryWrapper 的核心区别

本文主要讲解 MyBatis-Plus 中 QueryWrapper 与 LambdaQueryWrapper 的核心区别与选型。二者均简化 SQL 条件拼接,核心差异在字段引用:QueryWrapper 靠字符串硬编码,无编译校验,重构易出错;LambdaQueryWrapper 用 Lambda 表达式,支持类型安全与 IDE 自动重构。文章通过代码示例对比,说明 Lambda 依赖实体 getter 方法,建议生产环境优先选后者,快速测试可用前者,为 Java 开发者提供实用指南。

2025-11-26 14:47:23 2380

原创 【数据库锁机制】—全局锁、表锁、行锁、悲观锁、乐观锁、共享锁、排他锁、意向锁、记录锁、间隙锁、临键锁

本文讲解了 MySQL 数据库中锁的核心分类及应用逻辑,包括按锁粒度划分的全局锁、表锁、行锁,按冲突策略划分的悲观锁与乐观锁,按读写权限划分的共享锁与排他锁,以及辅助性的意向锁,还细分了行锁下的记录锁、间隙锁、临键锁(InnoDB 解决幻读的核心),同时阐述了 MVCC 与锁的配合关系,明确了不同锁的定义、特点、适用场景、实现命令及关键注意事项(如 InnoDB 行锁基于索引、乐观锁需业务逻辑实现等),帮助读者全面理解各类锁的作用与使用规范。

2025-11-07 15:50:02 2300

原创 【一文吃透 Elasticsearch】核心知识点 + 高频面试题(附实战排查思路)

本文主要讲解 Elasticsearch(ES)的核心知识与实战应用,先从基础概念切入,梳理索引、文档、分片等核心术语及分布式架构特点,再深入剖析倒排索引原理、文档写入流程与分片机制,同时结合 RESTful API 示例,展示索引创建、文档操作、复杂查询与聚合分析等核心实操。此外,针对高频面试场景,系统解答 ES 与 Lucene 关系、主副分片作用、集群脑裂解决办法等问题,并提供查询性能优化、大文档处理、结果异常排查等生产实战思路,内容兼顾理论深度与实操性,可作为 ES 学习、面试准备及生产问题处理的参

2025-10-30 22:39:17 2226

原创 【Spring框架三大核心特性】——IoC、DI、AOP

本文讲解 Spring 框架三大核心特性:控制反转(IoC),将对象创建等控制权交予 Spring 容器,实现解耦与灵活配置;依赖注入(DI),作为 IoC 的实现,通过构造器、Setter 方法等自动注入依赖,简化代码且便于动态替换;面向切面编程(AOP),分离日志、事务等横切关注点为切面,利用动态代理织入目标方法,实现代码复用与业务逻辑纯净,三者共同支撑 Spring 高内聚、低耦合的设计。

2025-10-14 18:53:54 1343

原创 【BIO、NIO、AIO】——原理、优缺点、使用场景

本文讲解 Java 中 BIO、NIO、AIO 三种 I/O 模型的原理、优缺点及适用场景。BIO 为同步阻塞模型,一个连接对应一个线程,编程简单但高并发下资源浪费严重,适用于连接数少的场景;NIO 是同步非阻塞模型,通过 Selector 实现单线程管理多连接,支持高并发,灵活性高,但编程复杂,多用于高并发低延迟场景;AIO 为异步非阻塞模型,依赖操作系统回调通知,资源利用率最高,却受系统支持和框架生态限制,适合长耗时 I/O 场景。三者在阻塞性、同步性、线程模型等维度差异显著,需依实际需求选择,实际开发

2025-10-14 17:32:17 1343

原创 【线程池全面知识整理】—基础概念、工作原理、核心组件、关键配置、实践要点

本文讲解线程池的全面知识,包括核心概念、工作原理、关键参数、核心组件、分类实现、实践要点及常见问题。线程池由四大组件构成,目标是降低性能损耗、控制并发强度等。以 Java ThreadPoolExecutor 为例,其工作遵循特定优先级逻辑,7 个核心参数决定其行为。任务队列和拒绝策略有多种类型,需依场景选择。还介绍了不同分类的线程池及多语言 / 框架实现,给出配置原则、问题解决方案与监控指标,强调生产环境优先自定义 ThreadPoolExecutor,关键业务需做好相关保障。

2025-10-14 17:25:39 1874

原创 【HashMap全面知识点】— 快速理解HashMap

本文讲解了 HashMap 的核心知识,包括其定义(实现 Map 接口,存键值对,允许 null 键值,非线程安全且无序)与核心参数(容量默认 16 且为 2 的幂、负载因子默认 0.75 等)。还阐述底层数据结构演进(JDK1.7 为数组 + 单向链表,JDK1.8 新增红黑树)、核心算法(哈希值与索引计算、put 方法流程、扩容机制),对比 JDK1.7 与 1.8 差异,分析并发隐患及解决方案,列举高频面试题,并给出实践建议,帮助读者全面理解 HashMap。

2025-10-13 19:50:15 2156

原创 【LeetCode热题100】No.11——盛最多水的容器

本文讲解 LeetCode 热题 100 中 “盛最多水的容器” 解法,题目需找出数组中两条垂线与 x 轴构成的最大盛水容器并返回水量。暴力解法遍历所有垂线组合,时间复杂度 O (n²),大数据量超时。最优双指针法:左指针在最左、右指针在最右,按 “min (左高,右高)× 宽度” 算盛水量并更新最大值,移动较矮指针(移动高指针水量必减,移动矮指针或遇更高垂线增水量),直至指针相遇。附 Java 代码,用示例验证,时间复杂度 O (n)、空间复杂度 O (1),关键是双指针结合贪心优化效率。

2025-10-10 19:12:23 1338

原创 【LeetCode 热题 100】No.283—— 移动零

本文主要讲解 LeetCode 热题 100 中 “移动零” 题的解法,该题要求将数组中所有 0 移动到末尾,且需原地操作、保持非零元素相对顺序并减少操作次数。先介绍基础的两次遍历法:第一次遍历用指针将非零元素前移,第二次遍历填充剩余位置为 0;还补充一次遍历优化法,通过跟踪零元素位置,遇非零元素时交换并更新零元素位置,减少写操作。给出 Java 代码实现,结合 [0,1,0,3,12]、[1,2,3,4]、[0] 等测试案例验证正确性,分析两种方法时间复杂度均为 O (n)、空间复杂度 O (1),总结解

2025-10-08 23:18:43 2248

原创 【LeetCode热题100】No.128——最长连续序列

本文主要讲解 LeetCode 热题 100 中 “最长连续序列” 题的解法,该题要求找出未排序整数数组中数字连续的最长序列长度,且需实现 O (n) 时间复杂度。先分析排序法的局限性,再重点阐述最优思路:用哈希表存储数组元素实现 O (1) 查找与去重,通过 “判定 x-1 是否存在” 确定连续序列起点,仅对起点遍历统计序列长度,避免重复计算。还给出完整 Java 代码,包含边界处理、哈希表存储、起点判定与长度统计等步骤,通过多个测试案例验证正确性,最后分析时间复杂度 O (n)、空间复杂度 O (n),

2025-10-05 20:18:48 2169

原创 【LeetCode 热题 100】No.49—— 字母异位词分组(Java 版)

本文主要讲解 LeetCode 热题 100 中 “字母异位词分组” 题的 Java 解法。该题要求将字母异位词(由相同字母不同顺序组成的字符串)分组。核心思路是找到异位词的共同标识,借助哈希表实现 “标识 - 分组列表” 映射。介绍两种标识生成方式,重点讲解排序法和计数法的 Java 代码实现,排序法代码简洁,计数法效率更高。还通过测试案例验证代码正确性,分析两种方法的时间与空间复杂度,总结出解题关键是合理设计哈希表的键以确保 “同组同键、异组异键”

2025-10-05 04:04:13 2300

原创 【LeetCode热题100】No.1——两数之和(Java)

本文主要讲解 LeetCode 热题 100 的第一题 “两数之和”。先明确题目要求,即从整数数组中找出和为目标值的两个整数并返回下标,给出示例与提示。接着分析两种解法:一是暴力解法,通过双重循环查找,时间复杂度 O (n²),效率低;二是哈希表优化解法,以空间换时间,将查找互补元素时间降至 O (1),整体时间复杂度 O (n),通过两个测试案例验证哈希表解法正确性,最后总结核心启示,即需快速查找元素时优先用哈希表,并预告后续讲解内容。

2025-10-04 06:46:24 2198

原创 【关于虚拟机执行ip addr 命令不显示ip地址问题】

本文主要记录了作者在使用虚拟机时,遇到执行ip addr命令不显示 IP 地址的问题及解决过程。起初,作者发现虚拟机仅显示回环地址与网卡物理信息,无 IPv4 地址,先后通过检查 Linux 系统内网卡配置文件、重启网络服务、切换虚拟机网络模式,以及搜索技术博客、咨询 AI 等常规方式排查,均未解决问题。最终,作者偶然意识到虚拟机 NAT 模式依赖物理机的 VMware 相关服务,经检查发现 Windows 物理机中 “VMware NAT Service” 服务未启动,启动该服务后,在虚拟机中执行ifup

2025-09-29 18:39:45 1530

原创 【RabbitMQ 篇】- 5 分钟搞懂 RabbitMQ 核心概念

本文主要讲解 RabbitMQ 的核心概念,先明确其基于 AMQP 协议、实现生产者与消费者解耦和异步通信的核心定位,再按消息流转顺序拆解消息、生产者、交换机(重点介绍 Direct、Fanout、Topic 三种常用类型及路由规则)、绑定、队列(阐述持久化、排外等核心特性)、消费者六大核心组件,同时说明支撑可靠性与隔离性的连接、信道、虚拟主机概念,最后通过 “订单创建后发送短信” 场景串联消息流转全流程,并给出核心概念速记口诀,帮助读者快速理解 RabbitMQ 的 “骨架”,为后续实践奠定基础。

2025-09-28 17:02:38 1127

原创 【Nacos 动态配置刷新深度解析】从原理到实战的全方位指南

本文主要讲解 Nacos 动态配置刷新的核心原理与实践要点。先说明传统单体应用改配置需重启的痛点,引出 Nacos 无需重启的优势;接着剖析长轮询这一核心通信模式的流程,对比推模式说明其优势,还介绍分片比较、分阶段更新两大优化;然后阐述控制台手动、API 调用、命令行工具三种配置更新触发方式,以及 @RefreshScope、自定义监听器、长轮询主动拉取三种客户端接收配置更新的方法;最后给出权限控制、版本回滚等六大注意事项与常见问题解决方案,助力开发者掌握该机制并应用于实践。

2025-09-23 16:49:46 1977

原创 【API 网关全景指南】从核心功能到架构设计的实战详解

本文围绕 API 网关展开,先对比单体与微服务架构下客户端调用差异,指出微服务中客户端直连服务的地址管理、功能冗余、跨域兼容三大难题,引出 API 网关作为统一入口的核心价值。接着详解其六大核心功能,含路由转发、负载均衡等实战配置与案例;对比 Spring Cloud Gateway、Kong 等主流产品并给出选型建议;还介绍集群部署、分层网关等架构设计最佳实践,以及性能、路由匹配、跨域等常见问题的解决方案,助力开发者理解并应用 API 网关构建可靠微服务体系。

2025-09-23 16:49:43 1794

原创 【Redis 持久化】核心问题篇(一文搞懂 Redis RDB、AOF 与混合持久化的本质与解决方案)

本文主要讲解 Redis 持久化机制,介绍 RDB、AOF 两种核心方式及混合持久化方案。RDB 通过定时生成二进制快照备份数据,体积小、恢复快但有数据丢失风险;AOF 记录每条写命令,安全性高但文件大、恢复慢。混合持久化结合二者优势,先加载 RDB 快照再补 AOF 命令。还给出场景选择建议,缓存场景选 RDB,核心业务用混合持久化,助力读者依需求保障 Redis 数据安全。

2025-09-22 23:54:52 1550

原创 【Redis 缓存】核心问题篇(一文搞懂Redis穿透、击穿与雪崩的本质与解决方案)

在 Redis 缓存应用场景中,缓存穿透、缓存击穿、缓存雪崩是三类典型且易引发系统问题的情况。本文将深入剖析这三者的概念,明确它们的触发场景与造成的影响,还会结合实际,详细讲解对应的解决方案,助力开发者打造更稳定、高效的缓存系统,避免因缓存相关问题导致系统性能下降甚至崩溃。

2025-09-19 19:50:41 1247

原创 【MyBatis-Plus 查询核心对比】:List <泛型> vs IPage < 泛型 > 与 QueryWrapper vs LambdaQueryWrapper 全解析

在 MyBatis-Plus 框架中,查询操作是日常开发的核心场景。本文将聚焦两组关键概念 ——List<泛型>与IPage<泛型>(查询结果承载)、QueryWrapper与LambdaQueryWrapper(查询条件构造),通过详细的场景分析和代码示例,帮助开发者理清区别、掌握正确用法。

2025-09-18 22:50:52 1247

原创 【数据库中的四种核心语言】-- DDL、DML、DQL、DCL

数据库中的四种核心语言(DDL、DML、DQL、DCL)的区别,以及实际应用

2025-09-17 22:43:28 2194

原创 【微服务】Gateway篇(一文理解Gateway在​项目​中的应用)

gateway简介、为什么使用gateway、gateway核心功能、gateway在项目中的配置

2025-09-16 21:19:02 2286 3

原创 【微服务】Sentinel篇(一文理解Sentinel在​项目​中的应用)

sentinel简介、为什么使用Sentinel、Sentinel核心功能、Sentinel在项目中的配置

2025-09-16 19:08:10 2086

原创 【微服务】Nacos篇(一文理解Nacos在项目中的应用)

本文围绕 Nacos 展开,介绍其作为微服务动态服务发现与配置管理平台的定位,核心功能含服务注册发现、动态配置及健康监测(Client 每 5 秒发心跳,Server 超时剔除实例),还简述单机 / 集群部署步骤、Spring Cloud 集成方法,以及 JVM 调整、鉴权启用等优化方向。

2025-09-15 22:51:31 1477

原创 【基于Spring Cloud 实现简单的微服务案例:集成Nacos、Gateway和Sentinel】

初入微服务学习案例

2025-09-15 22:51:28 1477 1

空空如也

空空如也

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

TA关注的人

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