引用计数
对对象的引用进行计数,优点在于简单方便,立即执行,缺点在于消耗资源过多,时间较长,对互相引用无能为力
标记清除
从根目录进行遍历对所有可以遍历到的对象进行标记,然后清除非标记的垃圾,优先在于相对引用消耗资源较小,缺点则是产生碎片化存储
标记整理
在标记清除后进行整理空间,防止产生碎片化存储
标记增量
在标记的过程中分时分段进行标记,与程序交替运行,减少等待时间,然后进行清除
新生代与老生代
新生代
空间较小,存在两个空间,主副空间,垃圾清除时将主空间标记内容转移到副空间进行整理并清除垃圾并转移
在存储占用大于一定百分比后或一轮GC清除后会将内容转移至老生代
新生代通常由局部作用域等变量所占用
老生代
采用整理,清除,增量等算法
使用标记清楚清除空间,然后使用整理
采用增量标记的方法来进行效率优化