更新时间: 2018-02-24 17:00:03#JVM垃圾回收算法之-标记清除java垃圾回收算法之-引用计数器,这个算法其中一个优点便是,实时性,只要对象的引用计数器的值为0,则立刻回收。接下来介绍的标记清除算法,当对象的引用计数器的值为0时,不会立刻被回收的。 #概念介绍#root对象在标记清除算法中,会把如下对象称之为root对象 被栈中的变量(栈中存的是对象的引用)所引用的对象 被static变量引用的对象 #可访问的对象如果栈中有一个变量a引用了一个对象,那么该对象是可访问的,如果该对象中的某一个字段引用了另一个对象b,那么b也是可访问的。可访问的对象也称之为live对象 #标记清除算法介绍#该算法有两个阶段。 标记阶段:找到所有可访问的对象,做个标记 清除阶段:遍历堆,把未被标记的对象回收 备注: 该算法一般应用于老年代,因为老年代的对象生命周期比较长。 #标记清除算法的优点和缺点1.优点 是可以解决循环引用的问题 必要时才回收(内存不足时) 2.缺点: 回收时,应用需要挂起,也就是stop the world。 标记和清除的效率不高,尤其是要扫描的对象比较多的时候 会造成内存碎片(会导致明明有内存空间,但是由于不连续,申请稍微大一些的对象无法做到) 原文: http://blog.csdn.net/linsongbin1/article/details/51577310