1.垃圾回收的主要作用:清除不再使用的对象,自动释放内存;
2.垃圾回收是怎样实现的:
为了判断对象是否存活,JVM引入GCRoot,若一个对象与GCRoot之间没 有直接或者间接的引用关系时,将此对象判为死缓,也表明该对象可以被回收(对象不可达);
3.垃圾回收的常用算法:.
(1) “标记-清除”算法;从GCRoot出发,标记有关系的对象,最后将没有标记的对象清除,这种算法会带来大量的空间碎片。
(2)"标记-整理"算法:从GCRoot出发,标记以存活的对象,然后将存活对象整理到内存空间的一端,形成连续的已使用空间,最后将已使用空间之外的部分全部清除。
(3)“Mark-Copy”:将空间分为两块,每次只激活其中的一块空间,垃圾回收时只需要将存活的对象复制到量一块未激活的空间,然后将已激活的空间标记为未激活,将未激活的空间标记为已激活,然后清除原空间的对象。
java垃圾回收
于 2019-09-13 11:54:54 首次发布