当JVM监测到堆内存不足时、手动调用System.gc()时、对象数量或内存使用达到阈值时会进行垃圾回收。
一、垃圾回收机制
1、minorgc后若放不下怎么办
- 年龄阈值判断:对象年龄达到
MaxTenuringThreshold(默认15)的对象直接晋升老年代 - 动态年龄计算:如果某个年龄段的对象总大小超过Survivor区的50%,该年龄段及以上的所有对象都晋升老年代
- 空间分配担保:当上述筛选后仍放不下时,检查老年代空间:
- 老年代剩余空间 > 所有存活对象 → 全部晋升老年代
- 老年代剩余空间 > 历史晋升平均值 → 尝试冒险晋升
- 老年代空间不足 → 触发Full GC
2025/12/29...大约 8 分钟