内存泄漏不是重启就能解决的——它会回来。找到根因、彻底修复才是正道。7 种真实泄漏模式,每种都有代码复现、MAT 分析过程和修复方案。
一、内存泄漏的信号
1.1 如何发现
信号 1:Full GC 越来越频繁
第 1 天:每 2 小时一次 Full GC
第 3 天:每 30 分钟一次
第 5 天:每 5 分钟一次
→ 典型的内存泄漏趋势
信号 2:GC 后老年代不下降
Full GC 前老年代 3.5GB
Full GC 后老年代 3.2GB(只降了 300MB)
→ 存在大量无法回收的对象
信号 3:堆使用量持续上升
jstat -gc <pid> 5000
OU(Old Used)持续增长,从不下降
信号 4:OOM 最终爆发
如果不处理 → 几天/几周后 OOM
2026/7/2大约 9 分钟