一. 垃圾回收机制
1. 新生代(Young Generation):
1) 大多数新建的对象都位于Eden区
2) 当Eden区被对象填满时,就会执行minor GC,并把所有存活下来对象转移到其中一个survivor区
3) survivor space:s0, s1 两个区域,存放每次垃圾回收后存活的对象
4) minor GC同样会检查survivor 区,这样一段时间内,总会有一个空的servivor区
2.老生代(Old Generation)
1) 存放长期存活的对象和经过多次minor GC后依然存活下来的对象
3. 永生代(Permanent Generation)
1) 存放方法区,存放应用程序类和方法,静态变量,final类型的常量、属性和方法信息
二. GC的触发条件
GC分为minor GC 和 major GC
minor GC从年轻代空间(包括 Eden 和 Survivor 区域)回收内存被称为 Minor GC
major GC 是清理老年代永生代
1 minor GC触发条件
1)当Eden区满时,触发minor GC
2 major GC 触发条件:
1)老生代空间不足
2)永生代空间不足
3)通过minor GC后进入老生代的平均大小大于老生代可用内存
4) 由Eden区,from Space区向 to Space区复制时,对象大小大于to Space可用内存,则把该对象传入老生代,且老生代的可用内存小于该对象大小