Java垃圾回收机制——java堆,
分享于 点击 3437 次 点评:52
Java垃圾回收机制——java堆,
堆中的垃圾回收机制分为新生代和老年代。
新生代:新生代的垃圾回收用的是复制算法,给新生代分一块区域存放新new出来的对象,将这块区域分成十份,其中八份为Eden空间,两份为Survivor空间(From Survivor与To Survivor),将新生成的对象放入Eden,若Eden满了可以放From Survivor空间,如果From Survivor空间也被填满就触发Minor GC,标记还存活的对象,并将这些对象存入To Survivor空间,清理掉Eden空间与From Survivor空间的对象,然后将From Survivor空间与To Survivor空间的名字与功能互换。
老年代:老年代的垃圾回收使用的是标记-整理算法,分出一块区域存放老年代对象,让所有存活对象都都向一端移动,然后清理掉其他空间的对象。
新生代对象如何转换为老年代对象?
1.长期存活对象将进入老年代
每经过一次Minor GC将age加1,当一个对象经过多次(默认15次)Minor GC都没有被清理掉时,将进入老年代。
2.大对象直接进入老年代
当一个对象比较大,新生代内存存放不下该对象时,将直接进入老年代。
相关文章
- 暂无相关文章
用户点评