GC是jvm中的一个后台线程,此线程完成的功能是收集堆空间中的没有引用的对象内存空间,并释放空间
GC的主要特点是能够释放无用的对象空间,程序员是无法掌控GC的调用的
GC针对的是堆空间,在堆空间中创建的对象,是创建在新生代
新生代区:
新生代分类:young generation
伊甸园区:Eden 所有新创建的对象都放在此区
幸存区:Survivor在伊甸园区中经过一个扫描,此对象还存在,就把对象从Eden区移动到此区中
一个Eden对应两个Survivor区 占用大小8:1:1
后边一个Survivor区是空闲的,系统保留区;
老生代区:old generation
在幸存区经过多次扫描对象,还存在幸存区中,就把幸存区中的对象移动到老生代中
老生代扫描对象是否可用的频率远低于幸存区的扫描频率
如果在老生代中长时间存在的对象那么建议程序员把对象放在方法区,以减少扫描的频率,程序员在写代码的时候要考虑对象的作用域空间
minor GC 初代回收,收集的是新生代的eden空间
full GC 完全回收,收集的是老生代的内存空间
简述垃圾收集管理器GC
最新推荐文章于 2022-05-05 13:42:18 发布