自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 LeetCode 链表高频双题精讲:146. LRU 缓存 + 148. 排序链表,吃透双向链表与归并排序

本文通过解析两道经典链表题目(146.LRU缓存和148.排序链表),深入探讨链表的核心应用场景。在LRU缓存设计中,重点讲解了如何通过哈希表+双向链表实现O(1)时间复杂度的访问顺序维护;在排序链表问题中,详细阐述了基于快慢指针和归并排序的分治策略。文章强调链表题目应避免简单遍历思路,而要将其视为可维护的数据结构,并提供了工具方法拆解、边界处理等实用技巧。通过对比两题的解法,帮助读者理解链表在不同场景下的最优处理方式,建立系统的解题思维框架。

2026-06-19 23:56:41 661 43

原创 链表操作的三剑客:从删除、交换到深拷贝

本文深入剖析了三道经典链表题目,帮助读者掌握链表操作的核心技巧:1. 删除链表的倒数第N个结点(LeetCode19):使用双指针法和哑节点技巧,详细解析了算法步骤和边界处理。2. 两两交换链表节点(LeetCode24):通过迭代法和递归解法对比,展示了节点交换的标准流程。3. 随机链表的复制(LeetCode138):介绍哈希表映射法和原地修改法两种解法,分析复杂链表复制的关键步骤。文章还总结了链表操作的通用技巧(哑节点、双指针、哈希表辅助等),提供了系统学习链表问题的路径建议、刷题顺序和面试技巧。通过

2026-06-19 00:04:42 977 47

原创 Java垃圾回收机制深度解析:从原理到实战

本文系统介绍了Java垃圾回收机制(GC)的核心原理与实践调优策略。主要内容包括:1. 对象存活判断方法(引用计数与可达性分析);2. GC Roots定义及分类;3. 三大垃圾回收算法(标记-清除、标记-整理、复制)对比;4. 分代收集策略原理及新生代对象晋升条件;5. GC类型(Minor/Full GC)及STW机制;6. 三色标记法与并发标记解决方案;7. 主流垃圾收集器特性对比;8. 实用GC调优建议与监控工具。文章最后总结了GC最佳实践并解答了常见问题,为Java开发者提供全面的GC知识体系。

2026-06-09 19:25:56 1728 55

原创 【算法深入解析】LeetCode链表经典题:合并有序链表与两数相加

本文深入解析LeetCode两道经典链表算法题:合并两个有序链表(21题)和两数相加(2题)。通过迭代法与递归法双视角,配合流程图解和完整代码实现,详细讲解解题思路与实现细节。文章包含复杂度分析、常见错误提示及优化建议,并延伸讨论链表非逆序存储、超大数字处理等扩展问题。最后总结链表操作的通用技巧和最佳实践,提供常见问题解答,帮助读者系统掌握链表算法核心思想。

2026-06-09 15:01:56 1340 34

原创 LeetCode链表经典五题:从相交到环形,双指针的妙用

本文摘要: 《LeetCode链表专题精讲》深入解析五类经典链表问题:相交链表(双指针相遇法)、反转链表(迭代三指针)、回文链表(快慢指针+反转)、环形链表检测(快慢指针)及环入口定位(数学推导)。通过清晰的代码实现、步骤图解和数学证明,系统讲解双指针技术的核心应用,提供时间复杂度O(n)、空间复杂度O(1)的优化解法。涵盖边界条件处理、常见陷阱及实际开发应用场景,如死锁检测、缓存架构等,帮助读者掌握链表操作的精髓与工程实践技巧。

2026-06-07 15:44:09 1252 70

原创 深入理解Java类加载机制:从原理到实战详解

本文深入解析了Java类加载机制的核心原理与实战应用。主要内容包括:1)类加载的完整生命周期(加载、验证、准备、解析、初始化等阶段);2)双亲委派模型的工作原理及其安全意义;3)双亲委派模型的缺陷分析与打破方法;4)自定义类加载器的实现方案;5)典型应用场景如热部署、模块化隔离等。 通过流程图解和源码分析,文章揭示了类加载器如何保障Java程序的安全性与稳定性,并提供了自定义类加载器的完整实现示例,帮助开发者在实际项目中灵活运用类加载机制解决复杂问题。

2026-06-07 00:48:25 974 59

原创 JVM 内存模型深度解析:从原理到实战调优

JVM内存模型与调优指南摘要 本文深入解析JVM内存模型核心原理,重点剖析JDK8运行时数据区的五大核心区域(虚拟机栈、程序计数器、本地方法栈、堆、元空间)及堆外内存的运作机制。通过对比表格清晰展示各内存区域的作用与异常场景,详解堆内存分代设计逻辑(新生代8:1:1比例)。提供生产环境调优方案,包括-Xms/-Xmx等关键参数配置建议,并附有String对象创建、堆内存OOM等代码示例。针对元空间溢出、Survivor区溢出等常见问题给出解决方案,推荐jstat、MAT等监控工具。最后分享分代回收优化、直接

2026-06-06 00:43:41 1125 42

原创 leetcode二维数组高频面试题详解:48.原地旋转矩阵 + 240.杨氏矩阵查找算法深度剖析

本文详细解析了LeetCode两道经典矩阵算法题:48题(n×n方阵原地顺时针旋转90°)和240题(杨氏矩阵高效查找)。通过坐标变换推导和贪心查找策略,提供Java实现代码、易错点分析及多种解题思路。文章强调二维数组操作在面试中的重要性,建议结合图示理解算法原理,并推荐了相关学习资源。适合准备技术面试的开发者深入理解矩阵类问题的核心解法。

2026-06-05 16:24:00 1113 32

原创 Java并发手撕题详解:原理、实现与面试避坑指南

本文总结了Java并发编程面试中4道高频手撕题的精要解析: CAS自旋锁:详解无锁编程原理,提供基于Unsafe类的实现代码,分析其优缺点及ABA问题的解决方案 线程通信: 两线程交替打印奇偶数:演示synchronized+wait/notify的经典用法 三线程顺序打印ABC:展示多线程精确控制技巧 LRU缓存:结合HashMap与双向链表实现O(1)操作的缓存,提供基础版和LinkedHashMap优化版两种实现 面试技巧: 强调先理清思路再编码的重要性 提醒注意虚假唤醒、可见性等常见陷阱 建议结合底

2026-06-04 21:19:23 1082 23

原创 LeetCode 三道高频中等数组算法详解|除自身乘积、矩阵置零、螺旋矩阵

在算法体系中,数组是最基础、最朴素的线性结构,几乎所有高级算法(动态规划、双指针、贪心、单调栈)都建立在数组遍历的基础之上。很多同学刷题卡顿的核心原因,不是看不懂复杂算法,而是基础数组思维不扎实、边界处理不严谨、不会空间优化。LeetCode 中等难度数组题,普遍具备以下特点:逻辑不难,但是细节极多、易错点密集暴力解法能通过部分案例,但无法满足时间、空间要求需要思维转换:拆分遍历、状态标记、边界收缩、空间复用今天讲解的三道题,覆盖了数组算法三大核心经典思想:前后缀拆分思想(238)

2026-06-04 00:36:44 1116 36

原创 【面试必背】ThreadLocal 万字详解:从底层原理到内存泄漏,再到跨线程传递解决方案

【摘要】本文深入剖析Java的ThreadLocal机制,涵盖核心原理、内存泄漏问题及解决方案。ThreadLocal通过线程私有变量实现无锁并发,其底层采用特殊哈希表结构(线性探测法)。内存泄漏源于Entry的弱引用key与强引用value不对称,最佳实践是显式调用remove()。针对跨线程传值问题,对比JDK的InheritableThreadLocal(仅适用于新建线程)与阿里巴巴TransmittableThreadLocal(支持线程池的CRR模式)。文章系统性地解答了ThreadLocal的三

2026-06-03 17:16:23 947 50

原创 LeetCode 高频数组三题详解:53 最大子数组和|189 轮转数组|56 合并区间

本文系统解析LeetCode三道经典数组题目(53、189、56),涵盖前缀和、数组轮转和区间合并三大核心解题方法。针对最大子数组和问题,详细拆解前缀和原理并给出空间优化方案及Kadane动态规划最优解;轮转数组部分对比辅助数组与三次反转两种解法,重点分析原地操作技巧;合并区间问题则通过贪心算法结合排序实现高效处理。文章提供完整的复杂度分析、边界测试用例及同类题目拓展建议,强调从基础实现到空间优化的渐进式学习路径。这三类解法可延伸应用于多种数组相关问题,是构建算法思维的重要基础。

2026-06-02 23:07:40 851 37

原创 【从零开始的JUC并发第五章】:线程池详解

本文系统总结了Java线程池的核心知识点,主要包括以下内容:线程池七大参数含义及工作原理;四种线程池类型(Fixed、Cached、Single、Scheduled)的特点与风险;四种拒绝策略及其适用场景;阿里禁用Executors的原因(OOM风险);线程数设置公式(CPU密集型和IO密集型);空闲线程回收机制;shutdown()与shutdownNow()的区别;execute()与submit()的差异;以及四种线程池异常捕获方案。文章特别强调生产环境中应避免使用Executors创建线程池,而应手

2026-06-02 21:32:37 997 27

原创 【滑动窗口与前缀和算法实战】:LeetCode560.438 高频题深度解析

本文详解两种核心算法:滑动窗口解决字符串异位词匹配问题(LeetCode 438),通过字符计数数组实现O(n)时间复杂度的定长窗口匹配;前缀和结合哈希表解决子数组和统计问题(LeetCode 560),巧妙利用preSum[j]=preSum[i]-k的关系实现高效查询。文章包含完整Java代码实现、关键细节分析,并对比两种算法的特性:滑动窗口适合定长字符串/数组问题,前缀和适用于含负数的子数组统计。最后提出优化方案,如滑动窗口的差异计数、前缀和的空间优化,帮助读者掌握算法本质并提升解题效率。

2026-06-01 23:59:10 912 33

原创 【从零开始的JUC并发第四章】:JUC常用工具类

文章摘要 本文深入解析了Java并发编程中JUC工具类的核心实现机制。重点包括: ConcurrentHashMap的JDK7分段锁与JDK8桶级锁+CAS+synchronized的演进,及其扩容机制; ReentrantLock基于AQS实现的可重入、可中断、公平锁特性,与synchronized的对比; BlockingQueue的四种实现(Array/LinkedBlockingQueue、SynchronousQueue、DelayQueue)及其应用场景,特别是DelayQueue的延迟任务处理

2026-06-01 20:34:06 1143 24

原创 Java 并发编程全解:锁、并发容器、阻塞队列与异步编程

Java并发编程核心组件深度解析 本文系统梳理了Java并发编程的四大核心模块:1)ReentrantLock显式锁机制,详解其可重入、可中断、公平锁等特性及AQS实现原理;2)ConcurrentHashMap的架构演进,从JDK7分段锁到JDK8的CAS+synchronized优化;3)BlockingQueue阻塞队列体系,分析Array/Linked/Synchronous/DelayQueue的实现差异与适用场景;4)CompletableFuture异步编程,展示链式调用、任务组合等函数式编程

2026-05-29 23:23:06 1370 17

原创 【juc第三章】:AQS机制全解

【摘要】AQS(AbstractQueuedSynchronizer)是Java并发包的核心同步框架,采用"状态标记+队列管理+CAS无锁"设计思想。其核心结构包括:volatile state状态变量(表示资源可用性)和CLH变体双向队列(管理等待线程)。AQS支持独占模式(如ReentrantLock)和共享模式(如Semaphore),通过tryAcquire/tryRelease等模板方法实现不同同步工具。工作流程包含线程排队(获取失败入队阻塞)和精准唤醒(释放资源后唤醒队首线程

2026-05-28 23:17:35 870 14

原创 【后端配置模块实战】:索引、中间件与缓存架构全解析

本文系统介绍了分布式后端系统中配置模块的核心实践,涵盖数据库索引设计、中间件配置、线程池与本地缓存优化、热键探测及消息解析五大关键维度。在数据库层面,详细阐述了B+树索引设计原则与复合索引的最佳实践;中间件部分重点讲解了Elasticsearch、Redisson和Redis的标准化配置方案;性能优化方面提出了线程池参数调优和Caffeine本地缓存的三级架构设计;高可用保障方面则介绍了热键探测的动态保护机制和基于Canal的Outbox消息同步方案。这些实践有效解决了分布式系统中的查询性能、资源管控、热点

2026-05-27 23:58:56 1572 31

原创 【JUC第二章下】:锁机制&关键字

本文主要介绍了Java并发编程中的锁机制和关键字相关知识。首先分析了synchronized修饰普通方法、静态方法和代码块时锁的不同对象:普通方法锁实例对象,静态方法锁类对象,代码块锁指定对象。然后讲解了volatile关键字的作用是保证可见性和禁止指令重排序,但不能保证原子性。接着阐述了可重入锁的概念及其必要性,公平锁与非公平锁的区别及优缺点,以及悲观锁和乐观锁的适用场景。最后详细解释了CAS原理及其三大问题(ABA、循环耗时、单变量原子性)的解决方案,自旋锁的优缺点,以及死锁产生的四个必要条件。这些知识

2026-05-27 23:47:12 1998 48

原创 【SpringBoot 个人资料模块实战】:PATCH 局部更新 + 正则校验 + CORS 跨域全解析

本文基于SpringBoot生态,详细拆解企业级个人资料模块开发方案。核心采用PATCH请求实现局部更新,结合正则表达式+Validation注解进行严格参数校验,使用Optional处理空值问题,并通过CORS配置解决跨域问题。文章从DTO设计、HTTP方法选型、业务层实现到控制层安全隔离,完整呈现开发流程,提供兼顾入门理解与工程实践的解决方案。该方案符合RESTful规范,接口幂等性、安全性、可扩展性均满足企业级要求,可应用于用户系统开发。

2026-05-26 23:49:02 1108 50

原创 【JUC第二章上】:锁机制&关键字

本文详细解析了Java中synchronized锁的底层原理与升级机制。主要内容包括:1)锁升级流程(无锁→偏向锁→轻量级锁→重量级锁),重点分析了JDK15前后不同的升级路径;2)三种锁的核心原理与适用场景:偏向锁适合单线程无竞争场景,轻量级锁采用CAS+自旋适合轻度竞争,重量级锁依赖操作系统互斥量适合高竞争场景;3)锁升级的核心思想是根据竞争程度自动选择最优锁机制,平衡性能与开销。文章还深入探讨了对象头MarkWord的结构变化、自适应自旋等关键技术细节。

2026-05-26 23:39:11 1036 36

原创 【Spring Boot 认证登录注册模块全解析】:JWT+BCrypt+Redis 企业级实践

本文基于SpringBoot+SpringSecurity实现了一套完整的企业级认证授权方案,核心内容包括:1.采用JWT无状态认证和BCrypt密码加密确保安全性;2.通过Redis管理验证码和刷新令牌白名单;3.实现标准化登录注册流程,包括双模式登录、令牌刷新、密码重置等功能;4.使用JavaRecord简化DTO开发,统一配置管理。该方案具备高安全、无状态、易扩展特点,适用于电商、社交等场景,后续可扩展多因素认证等安全能力。

2026-05-25 23:54:48 1160 44

原创 【juc面试第一章】:线程基础

本文系统讲解了线程相关的基础知识,主要包括:1)进程与线程的7大核心区别,包括资源占用、地址空间、创建开销等;2)Go协程与Java线程在调度模型、资源消耗、使用方式等6个方面的差异;3)Java线程的4种创建方式及优缺点;4)线程的5大生命周期状态及流转过程;5)守护线程与用户线程的区别及应用场景;6)sleep()、wait()、yield()、join()等线程方法的对比分析。全文通过对比分析的方式,深入浅出地阐述了线程的核心概念和使用要点,为理解并发编程提供了系统性的知识框架。

2026-05-25 23:49:13 1036 64

原创 [SpringBoot 对象存储实战]:预签名 URL 直传 OSS 全流程设计与实现

本文介绍了基于SpringBoot和阿里云OSS的预签名URL客户端直传方案。相比传统后端中转上传,该方案通过生成带时效的签名URL实现客户端直传OSS,具有服务无压力、上传速度快、安全可控等优势。文章详细讲解了请求实体设计、OSS存储服务封装、权限校验及接口实现等核心环节,并提供了前端直传示例。该方案能有效降低服务负载,提升上传效率,适用于文章、图片等大文件上传场景,建议配合CDN加速和文件防护措施使用。

2026-05-24 22:48:42 1107 49

原创 【SpringBoot+Elasticsearch 内容搜索系统实战】:架构设计与全流程实现

本文基于SpringBoot与Elasticsearch实现了一套完整的搜索服务解决方案。主要内容包括:1)索引设计与初始化,通过IK分词器提升检索精准度;2)数据同步机制,结合全量回灌和Kafka+Canal实现增量更新;3)核心搜索功能实现,支持多字段加权匹配、游标分页和高亮显示;4)搜索建议功能,基于completion类型实现毫秒级响应。该方案解决了传统数据库搜索的性能瓶颈,具备高实时性、精准检索和易扩展等特点,适用于文章、社区等内容平台场景。实施时需注意分词优化、集群规划和性能监控等关键点。

2026-05-24 22:37:40 1468 27

原创 【MySQL SQL 执行全链路剖析】:执行计划、慢查询与经典场景优化指南

本文系统梳理MySQL性能优化全链路,从SQL执行流程、Explain执行计划解析切入,重点剖析四大核心优化场景:1.慢查询日志分析与全局优化思路,强调索引优化与SQL改写;2.分页查询的深偏移优化方案(主键定位/延迟关联);3.排序分组场景的索引设计与临时表规避;4.大表联表的驱动表选择与索引优化策略。通过执行计划type字段判断查询效率,结合业务场景提供分页Limit、OrderBy、GroupBy、Join等高频操作的实战优化方案,帮助开发者系统解决数据库性能瓶颈问题。

2026-05-23 23:20:59 1417 84

原创 【Spring AI 集成 DeepSeek 实现 AI 摘要与 RAG 问答】:从原理到落地实践

本文基于SpringAI框架整合DeepSeek大模型与向量数据库,实现AI一键摘要与RAG检索增强生成功能。主要内容包括:1)通过Spring配置类实现DeepSeek大模型接入;2)开发文章自动摘要功能,包含提示词设计、模型调用和结果后处理;3)构建RAG索引流程,利用SHA-256指纹校验确保数据一致性;4)实现流式问答查询,采用宽召回机制提升检索准确率。该方案适用于企业知识管理场景,能有效提升信息处理效率并解决大模型幻觉问题。

2026-05-23 23:02:28 1274 49

原创 【MySQL 三大日志深度解析】:redo log、undo log、binlog 作用与两阶段提交原理

MySQL三大日志系统解析:redolog确保事务持久性和崩溃恢复,采用WAL机制先写日志再刷盘;undolog支撑事务原子性和MVCC,记录修改前的数据;binlog用于主从复制和数据归档,推荐ROW格式保证一致性。两阶段提交机制协调redolog和binlog,确保数据全局一致。理解这些日志原理是掌握MySQL事务与高可用架构的关键。

2026-05-22 23:20:54 1450 77

原创 【Feed 高并发架构实战】:雪花 ID + 三级缓存 + 计数旁路设计详解

本文介绍了分布式内容平台的核心技术架构,重点解析了三大关键技术:1. 雪花算法ID生成器,采用64位结构设计实现分布式唯一ID,具备线程安全和时钟回拨防护特性;2. Feed流三级缓存架构(L1本地缓存+L2Redis+L3数据库),通过分层设计提升缓存命中率至99%以上;3. 计数旁路更新与反向索引机制,实现实时计数精准失效。整套方案兼顾性能、可靠性与可扩展性,适用于高并发内容系统,接口响应从百毫秒降至毫秒级,支持流量洪峰场景。

2026-05-22 23:13:24 1183 51

原创 【MySQL 锁全解】:从行锁到死锁,一次讲透所有面试考点

MySQL锁机制主要包括全局锁、表级锁和行级锁。全局锁使数据库只读,用于全库备份;表级锁分为表锁(限制读写)、元数据锁(保护表结构)和意向锁(标识行锁状态)。行级锁包含记录锁(S/X锁)、间隙锁(防止幻读)和临键锁(组合锁)。InnoDB行锁依赖索引,无索引时会锁全表,效果类似表锁。临键锁通过锁定记录和间隙解决幻读问题。死锁产生于事务互相等待锁,可通过统一访问顺序、缩小事务范围、合理索引等方式避免。理解锁机制对优化数据库并发性能至关重要。

2026-05-21 23:40:31 1257 36

原创 【Outbox 事件驱动 + Canal Binlog 增量订阅】:用户关系模块架构实战详解

本文详细介绍了基于Outbox事件驱动和Canal Binlog增量订阅的用户关系模块架构方案。该方案通过MySQL业务表+Outbox事件表+Canal监听+Kafka消息中转+消费者处理的CDC模型,实现业务解耦、异步数据同步和缓存自动维护。核心包括:1)Canal-Kafka桥接器实现Binlog监听过滤和消息投递;2)消费者解析事件并调用处理器;3)处理器通过Redis幂等锁、ZSet缓存和原子计数确保数据一致性。该架构适用于高并发社交场景,具有无侵入、高吞吐和强一致性的优势,支持关注/粉丝关系的可

2026-05-21 21:55:04 2041 27

原创 【详解 MySQL 可重复读与 MVCC】:搞懂幻读与版本链机制

MySQL事务并发控制解析:隔离级别与MVCC实现原理 摘要:本文深入解析MySQL事务并发控制机制,重点探讨可重复读隔离级别如何通过临键锁(next-key lock)防止幻读,以及串行化隔离级别如何借助共享临键锁彻底解决并发问题。详细剖析MVCC实现原理,包括ReadView的四个关键字段(m_ids、min_trx_id、max_trx_id、creator_trx_id)及其可见性判断规则,说明不同隔离级别下版本控制的差异。同时指出事务使用规范:更新操作通过行锁和undo log保证原子性,但过长事

2026-05-19 23:01:06 1326 81

原创 【Redis 位图分片计数详解】:原理、实战架构与避坑最佳实践

本文基于企业级计数模块源码,深度解析Redis位图在高频计数场景中的应用。核心内容包括:1)Redis位图基础命令与位运算特性;2)位图分片架构设计及数据丢失风险;3)计数Schema二进制存储方案;4)Kafka计数事件与生产者幂等性保障;5)计数服务重建机制与退避限流策略。通过位图分片解决大Key问题,结合Kafka幂等事件和三层防护机制,构建高可用分布式计数系统,适用于社交平台点赞、日活等海量计数场景。

2026-05-19 21:06:55 1852 25

原创 【MySQL 事务并发实战】:隔离级别、MVCC 与幻读问题彻底解

本文深入解析MySQL高并发问题的解决方案。首先介绍MySQL通过锁机制(行锁/表锁)、事务隔离级别(读未提交/读已提交/可重复读/串行化)和MVCC多版本控制来保证数据一致性。重点剖析可重复读隔离级别:默认采用MVCC机制,事务启动时创建ReadView,快照读始终读取固定版本数据,但当前读(增删改操作)会读取最新数据,这种混合使用可能导致幻读现象。文章通过具体案例演示了不同隔离级别下的数据可见性差异,并指出纯快照读不会幻读,只有快照读与当前读混用时才会出现幻读问题。

2026-05-18 21:05:12 1251 61

原创 【Kafka 核心概念深度详解】:分区、消费者组、位点及存储消费实战指南

本文系统介绍了Kafka的核心原理与实践应用。重点解析了分区(Partition)的并发处理与消息有序性、消费者组(ConsumerGroup)的负载均衡机制、偏移量(Offset)的断点续传功能。详细阐述了Kafka的存储架构、日志留存策略,以及自动/手动提交位点的优劣对比。文章强调分区是物理存储单元,消费者组实现消息复用,偏移量确保消费连续性,并提供了生产环境配置建议。掌握这些基础概念是Kafka高效应用的前提,为后续深入学习奠定基础。

2026-05-18 19:42:06 2367 36

原创 MySQL 事务四大特性与并发问题全解析:脏读、不可重复读、幻读彻底搞懂

摘要:MySQL事务具有ACID特性:原子性(通过undolog实现)、一致性(依赖其他三个特性)、隔离性(通过MVCC或锁实现)、持久性(通过redolog保证)。并发事务可能引发脏读(读取未提交数据)、不可重复读(同一数据多次读取结果不同)和幻读(范围查询结果数量变化)。不可重复读针对单行数据修改(UPDATE),幻读则涉及行数增减(INSERT/DELETE)。InnoDB引擎通过日志和并发控制技术确保事务安全执行。(149字)

2026-05-17 22:56:57 981 35

原创 数据库三大范式深度详解:数据表设计规范化实战指南

摘要:数据库三大范式是关系型数据库设计的核心规范,能有效解决数据冗余和操作异常问题。第一范式(1NF)要求字段不可再分,确保数据原子性;第二范式(2NF)消除部分依赖,要求非主属性完全依赖主键;第三范式(3NF)消除传递依赖,要求字段直接依赖主键。文章通过电商订单、校园教务等案例,详细解析了各范式的违规表现和优化方案,并指出在实际开发中应根据业务场景灵活运用范式原则,在规范性和性能之间取得平衡。掌握三大范式能帮助开发者设计出结构清晰、易于维护的数据库表结构。

2026-05-17 22:07:05 1004 20

原创 用户模块架构实战:DTO 与 Domain 分层、Optional 空值处理、事务只读优化详解

本文基于实际项目经验,详细解析了Java微服务开发中用户模块的核心规范与实践。重点阐述了DTO与Domain领域模型的分层设计原则,强调DTO负责接口数据传输而Domain专注业务逻辑;介绍了Java8 Optional如何通过容器化方式彻底解决空指针问题;讲解了@Transactional(readOnly=true)只读事务注解的性能优化原理及使用场景;最后剖析了模块化架构中用户模块的无Controller设计思路。这些实践方案能有效提升代码规范性、系统安全性和数据库性能,为企业级用户模块开发提供完整参

2026-05-15 23:38:19 1756 54

原创 Feed 三级缓存架构详解:分层设计、缓存一致性与高性能实战

本文详细介绍了Feed信息流的三级缓存架构设计,通过L2本地内存、L1页面骨架和L0碎片存储的分层策略,结合双删机制、分片技术、聚合桶计数和Single-Flight单飞机制等关键技术,实现了低延迟、高缓存命中率和秒级最终一致性的目标。该架构有效解决了读延迟高、数据库压力大和缓存不一致三大痛点,适用于各类社交和内容社区产品的信息流场景,为系统性能优化提供了完整的解决方案。

2026-05-15 23:22:30 959 29

原创 MySQL 索引高频面试题全解析:B + 树、联合索引、索引失效

摘要:B+树是一种多叉平衡树,其特性包括所有叶子节点在同一层、非叶子节点仅存储索引、数据全在叶子节点以及自动平衡。相比B树,B+树数据仅存于叶子节点、有双向链表连接叶子节点且查询更稳定。B+树优势在于更矮胖的结构减少I/O、冗余节点提高增删效率、链表支持高效范围查询。联合索引ABC中条件"A=XXX and C<XXX"会使用A索引并通过索引下推优化C条件。索引失效场景包括模糊匹配、使用函数、表达式计算、隐式类型转换、违反最左匹配原则及OR条件含非索引列。

2026-05-15 22:51:59 1321 23

空空如也

空空如也

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

TA关注的人

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