GC算法(Java)

作者: 雨笋情缘 | 来源:发表于2017-08-24 11:57 被阅读7次

    1.标记清除算法

           分为标记和清除两个阶段:首先标记出所有需要回收的对象,在标记完成后统一回收所有被标记的对象。

           缺点:效率不高并且会产生不连续的内存碎片。

    2.复制算法

           把内存空间划为两个区域,每次只使用其中一个区域。垃圾回收时,遍历当前使用区域,把正在使用中的对象复制到另外一个区域中。算法每次只处理正在使用中的对象,因此复制成本比较小,同时复制过去以后还能进行相应的内存整理,不会出现“碎片”问题。

            优点:实现简单,运行高效。

            缺点:会浪费一定的内存。一般新生代采用这种算法。

    3.标记整理算法

           标记阶段与标记清除算法一样。但后续并不是直接对可回收的对象进行清理,而是让所有存活对象都向一端移动,然后清理。

           优点:是不会造成内存碎片。

    参考链接:https://yemengying.com/2016/05/13/jvm-GC/

    相关文章

      网友评论

        本文标题:GC算法(Java)

        本文链接:https://www.haomeiwen.com/subject/jzosdxtx.html