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