标签: Java
该标签下的全部文章 "Java".
AQS 与 ReentrantLock 源码主线
沿着 state、tryAcquire、等待队列、park、unpark 和 release 阅读 AQS 与 ReentrantLock 的源码主线。
CAS、ABA 与 Atomic 原子类
用 AtomicStampedReference 复现 ABA,理解 Compare-And-Set 的原子更新、失败重试和竞争代价。
synchronized 的实现、锁状态与适用边界
从 monitorenter、monitorexit 和监视器膨胀理解 synchronized,并纠正现代 JDK 中过时的固定锁升级说法。
JMM、Happens-Before 与三类并发性质
用计数器和发布对象示例理解原子性、可见性、有序性,以及 volatile、锁和线程启动建立的先行发生关系。
线程生命周期、等待通知与中断协议
从线程状态、join、wait/notify 到 interruption,建立不会丢失取消信号的线程协作协议。
JDK 升级与 JVM 性能回归
设计可重复的 JDK 17、21、25 性能对比,识别预热、默认收集器、参数语义和运行时行为变化。
GC 调优方法:目标、基线、变更与复测
用吞吐、P99、暂停预算、分配速率和存活集驱动 GC 调优,每次只改变一个可解释变量。
常量池、字符串与类元数据的内存代价
区分 Class 常量池、运行时常量池与字符串驻留池,并用实验观察 intern、类加载和类卸载边界。
CPU 飙高、死锁和长暂停排查
用有时限的 CPU 热点和死锁实验建立线上应急流程,区分计算热点、锁等待、GC 与 safepoint 暂停。
内存泄漏、OOM 与 Heap Dump 实战
在 64 MiB 小堆中安全制造内存泄漏,生成 Heap Dump,并从增长对象、引用链和保留大小定位根因。