Posts
All the articles I've posted.
-
JIT编译与逃逸分析——JVM如何让你的Java代码越跑越快?
C2 逃逸分析将未逃逸对象做标量替换免除堆分配,连带触发锁消除,方法内联为优化提供更大上下文,让 Java 代码越跑越快。
-
GraalVM-Native-Image-AOT编译四阶段
Native Image 通过指针分析删死代码、堆快照预计算 Spring 初始化、AOT 编译为机器码,将启动从 12s 压缩到 0.2s。
-
G1垃圾回收器——Region、RSet和SATB
G1 将堆切为 2048 个 Region 动态分代,RSet 记录跨 Region 引用避免全堆扫描,SATB 保留快照保证并发标记不丢对象。
-
虚拟线程的Pinning问题
synchronized 的 Monitor 锁与 OS 线程绑定导致虚拟线程无法卸载,替换为 ReentrantLock 可彻底解决 Pinning 问题。
-
Stream惰性求值——为什么中间操作不会立刻执行?
揭示 Stream 惰性求值机制——中间操作只构建 Pipeline 链表不执行,终止操作触发 Sink 链构建后每个元素一次性穿越所有中间操作,配合短路操作提前终止遍历。
-
Lambda的invokedynamic与匿名内部类
Lambda 通过 invokedynamic 运行时动态生成类,无捕获时为单例,与编译期生成.class 的匿名内部类本质不同
-
Java 21 结构化并发:让虚拟线程如虎添翼
StructuredTaskScope 将子任务生命周期限定在 try-with-resources 花括号内,任一失败全员取消,与虚拟线程配合实现廉价海量并发无泄漏。
-
Java Record与Sealed类——代数数据类型(ADT)的语言级支持
Record 一行声明不可变数据类编译器自动生成全套方法,Sealed 限制子类集合配合 switch 模式匹配实现编译期穷举检查消除漏分支。