垃圾回收机制全解析
引言:城市的黎明清洁者
每天凌晨四点,当城市还在沉睡时,环卫工人已经开始清扫街道。JVM的垃圾回收机制就像这支隐形清洁队,默默清理着程序运行时产生的"数字垃圾"。我们将通过城市管理视角,揭开自动内存管理的神秘面纱。
第一章 垃圾识别:谁该被回收?
1.1 可达性分析:社交关系检测
想象城市居民登记系统通过社交关系判断某人是否需要保留:
// 城市核心地标视为GC Roots
Object[] cityLandmarks = {
new Object(), // 地标1:中央广场
new Object() // 地标2:火车站
};
// 居民关系网
Person 老王 = new Person("老王"); // 直接认识市长(GC Root)
Person 小李 = new Person("小李", 老王); // 通过老王间接关联
// 孤立居民案例
new