(1)程序调用System.gc时可以触发
(2)系统自身来决定GC触发的时机(根据Eden区和From Space区的内存大小来决定。当内存大小不足时,则会启动GC线程并停止应用线程)
GC又分为 minor GC 和 Full GC (也称为 Major GC )
1、Minor GC触发条件:
当Eden区满时,触发Minor GC。
2、Full GC触发条件:
a.调用System.gc时,系统建议执行Full GC,但是不必然执行
b.老年代空间不足
c.方法去空间不足
d.通过Minor GC后进入老年代的平均大小大于老年代的可用内存
e.由Eden区、From Space区向To Space区复制时,对象大小大于To Space可用内存,则把该对象转存到老年代,且老年代的可用内存小于该对象大小
本文详细介绍了Java中的垃圾收集(GC)机制,包括如何在程序中调用System.gc()触发GC,以及系统如何根据内存使用情况自动决定GC的时机。主要讨论了MinorGC和FullGC两种类型,明确了它们各自的触发条件,如Eden区满、老年代空间不足等。理解这些概念对于优化Java应用的性能至关重要。
12万+

被折叠的 条评论
为什么被折叠?



