JVM垃圾回收原理

来源:百度文库 编辑:神马文学网 时间:2024/06/28 09:51:44
GC有两种类型:Scavenge GC和Full GC。 

1. Scavenge GC 
一般情况下,当新对象生成,并且在Eden申请空间失败时,就好触发Scavenge GC,堆Eden区域进行GC,清除非存活对象,并且把尚且存活的对象移动到Survivor区。然后整理Survivor的两个区。 
2. Full GC 
对整个堆进行整理,包括Young、Tenured和Perm。Full GC比Scavenge GC要慢,因此应该尽可能减少Full GC。有如下原因可能导致Full GC: 
* Tenured被写满 
* Perm域被写满 
* System.gc()被显示调用 
* 上一次GC之后Heap的各域分配策略动态变化