垃圾分类管理器GC
什么是垃圾分类管理器(GC)
GC是jvm中的一个后台线程,此线程完成的功能是手机堆空间中的没有引用的对象内存空间,并释放空间
GC的主要特点
能够释放无用的对象空间,程序员是无法掌控GC调用的
GC针对的是堆空间
新老生代区
在堆空间中创建的对象是创建在新生代中的
- 新生代区(young generation):
1.新生代区:Eden(伊甸园区)
2.幸存区:Survivor
在Eden区经过一个扫描后,此对象还存在就把对象从Eden区移动到此区中
一个Eden区对应两个survivor区 比例是8:1:1
而最后一个survivor区是空闲的,是系统保留区 - 老生代区(old generation):
在幸存区中经过多次扫描对象后,还存在在幸存区中,就把幸存区中的对象移动到老生代区中
老生代区扫描对象是否可用的频率远低于幸存区的扫描频率
如果在老生代中长时间存在的对象,建议程序员把对象放在方法区种,以减少扫描的频率,程序员在写代码时,要考虑对象的作用域空间
minor gc 初代回收,手机的是新生代Eden区的空间
full gc 完全回收,收集的是老生代的内存空间