Java 核心技术:深入理解 AQS
系统性剖析 AbstractQueuedSynchronizer(AQS)的设计思想、核心数据结构、加锁解锁流程,并通过 ReentrantLock 源码深入理解其工作原理,最后梳理 AQS 在 JUC 中的典型应用场景。
系统性剖析 AbstractQueuedSynchronizer(AQS)的设计思想、核心数据结构、加锁解锁流程,并通过 ReentrantLock 源码深入理解其工作原理,最后梳理 AQS 在 JUC 中的典型应用场景。
事务的四个隔离级别不是教科书上的枯燥定义,而是对读写冲突这个核心矛盾的四种不同权衡。Read Uncommitted 用最小代价换最大并发,Serializable 用最大代价换绝对正确。中间两档的差异藏在锁持有多久和锁住什么范围的细节里。理解这些细节,才能看懂 InnoDB 的加锁行为,才能在死锁发生时快速定位根因。
索引不是加了就快的魔法,而是一套需要理解底层数据结构、遵循匹配规则、结合业务场景做判断的工程实践。从磁盘 I/O 的物理约束理解 B+Tree 的设计动机,从最左前缀匹配理解复合索引的使用规则,从 EXPLAIN 的输出理解优化器的真实决策——每一步都是在缩小扫描行数与实际需要行数之间的差距。
Redis 的快不是因为内存数据库四个字就能解释的,而是单线程模型、精心设计的数据结构、惰性过期策略和高效持久化机制共同作用的结果。从五种数据类型的内部编码理解选型依据,从 RDB 和 AOF 的写入管线理解持久化保障,从 Sentinel 的故障检测理解高可用设计——每一个工程决策都在性能、安全和复杂度之间寻找平衡点。
跨服务操作要么全部成功要么全部回滚——这个在单机数据库里靠 ACID 就能解决的问题,到了分布式环境就变成了一个没有完美解的工程权衡。本文从 CAP/BASE 理论出发,逐一拆解 2PC、3PC、TCC、Saga、本地消息表、事务消息六种方案的原理、代码和适用边界,补充生产环境必不可少的对账机制,给出基于业务场景的选型框架。
Spring Boot 的启动流程、动态注册与热更新,本质上是同一个问题的三层回答:如何在不同时间窗口内修改容器状态?本文从源码级别剖析每个机制的设计决策与代价,帮助建立对 Spring 扩展体系的完整心智模型。
深入解析gRPC Java的两个核心工程问题:拦截器的双向调用链路与错误处理的两种模型。涵盖Client/Server拦截器的执行流程、io.grpc.Status与google.rpc.Status的设计差异,以及流式RPC的错误传递策略。
全面解析Java字节码增强技术体系,对比ASM、Javassist、cglib、ByteBuddy四大工具的定位与取舍,深入ByteBuddy的核心API——类创建、方法拦截、注解驱动委托,并结合Java Agent与cglib迁移等工程场景展开实战。
系统梳理Java I/O体系的演进脉络,从传统BIO的流式模型到NIO的缓冲区+通道+多路复用模型,深入分析Channel、Buffer、Selector的设计原理与协作机制,理解I/O模型变革背后的系统级思考。
从CPU缓存一致性协议到Java内存模型,从volatile的硬件级实现到Lock/Condition的协作机制,从JUC并发工具类到线程池的高级用法,系统构建Java并发编程的知识体系。
系统剖析JVM核心机制,从类加载的双亲委派模型到运行时内存布局,从PermGen到Metaspace的演进,再到七大垃圾收集器的设计原理与选型策略,构建完整的JVM知识体系。