第 1 篇一次 Java 对象创建到底发生了什么?从 new 字节码到安全发布2025/11/04沿着 HotSpot 的执行路径,拆解类初始化、内存分配、对象头、零值初始化、构造器执行与安全发布。阅读 一次 Java 对象创建到底发生了什么?从 new 字节码到安全发布
第 2 篇Java 对象到底占多少内存?用 JOL 看懂对象头、指针压缩与对齐2025/11/07从 HotSpot 对象布局出发,演示如何用 JOL 测量对象、数组与继承结构的真实内存占用。阅读 Java 对象到底占多少内存?用 JOL 看懂对象头、指针压缩与对齐
第 3 篇从字节码理解泛型擦除:Java 为什么没有运行时泛型参数?2025/12/26通过 javap、桥接方法和反射实验,解释类型擦除、泛型数组限制、堆污染与类型令牌。阅读 从字节码理解泛型擦除:Java 为什么没有运行时泛型参数?
第 4 篇volatile 为什么保证可见性,却不能保证原子性?2025/12/30从 Java 内存模型、happens-before、读改写竞态和内存屏障解释 volatile 的能力边界。阅读 volatile 为什么保证可见性,却不能保证原子性?
第 5 篇synchronized 真的很重吗?从 monitor 到锁优化的完整理解2026/02/17解析 synchronized 的字节码语义、对象监视器、竞争升级、锁消除与正确的性能测试方式。阅读 synchronized 真的很重吗?从 monitor 到锁优化的完整理解
第 6 篇ThreadLocal 为什么容易造成内存泄漏?线程池场景下的完整治理2026/02/20从 ThreadLocalMap 的弱引用结构解释 value 残留、上下文串号,以及在线程池和异步链路中的安全用法。阅读 ThreadLocal 为什么容易造成内存泄漏?线程池场景下的完整治理
第 7 篇Java 异常处理的隐藏成本:真正昂贵的是哪一步?2026/04/12分析异常对象创建、栈追踪、抛出捕获、日志 I/O 对性能的影响,并给出可靠的 JMH 测试方法。阅读 Java 异常处理的隐藏成本:真正昂贵的是哪一步?
第 8 篇一次 Full GC 排查实战:从告警、GC 日志到堆转储引用链2026/04/14以 Java 服务延迟抖动为案例,演示如何建立 Full GC 排查证据链并区分泄漏、容量不足与分配风暴。阅读 一次 Full GC 排查实战:从告警、GC 日志到堆转储引用链
第 9 篇G1、ZGC、Shenandoah 应该如何选择?从延迟目标到生产验证2026/06/05对比 G1、ZGC 与 Shenandoah 的回收模型、暂停来源、内存代价和适用边界,并给出基于业务指标的选型与压测方法。阅读 G1、ZGC、Shenandoah 应该如何选择?从延迟目标到生产验证
第 10 篇JIT 如何优化 Java 代码?从方法内联到逃逸分析与去优化2026/06/07结合分层编译、方法内联、逃逸分析、标量替换、锁消除和去优化,解释 HotSpot 如何把热点字节码变成高效机器码。阅读 JIT 如何优化 Java 代码?从方法内联到逃逸分析与去优化
第 11 篇类加载器与双亲委派:为什么应用服务器和插件系统要打破它?2026/06/26深入分析类加载器命名空间、双亲委派、线程上下文类加载器,以及容器和插件系统采用子优先策略时的隔离与安全边界。阅读 类加载器与双亲委派:为什么应用服务器和插件系统要打破它?
第 12 篇Java SPI、Spring SPI 与自定义插件系统设计:扩展点背后的边界2026/06/30从 ServiceLoader、SpringFactoriesLoader 到隔离式插件架构,分析扩展发现、生命周期、类加载、故障隔离和版本兼容问题。阅读 Java SPI、Spring SPI 与自定义插件系统设计:扩展点背后的边界