zoukankan      html  css  js  c++  java
  • 垃圾收集算法

    标记-清除算法

      顾名思义,首先标记所有需要回收的对象,然后统一回收所有被标记的对象

      缺点:

        1.标记和清除的效率都不高

        2.标记清除后会产生大量的内存碎片

    复制算法

      内存按容量划分为大小相等的两块,每次只使用其中一块内存,当其中一块内存使用完后,将还活着的对象复制到另一块内存上,然后把已使用的内存空间一次性清除掉,这样内存分配时就不用考虑内存碎片的情况,实现简单,运行高效,但是会浪费一半的内存。现在一般是9:1,这样就只会浪费10%的内存空间,但是需要有其他的内存空间进行分配担保。

    标记-整理算法

      复制算法在对象存活率较高时要进行较多的复制操作,效率会降低。所以老年代不会使用这种算法。

      标记-整理算法的标记过程和标记-清除算法一样,后续是先将存活的对象向一段移动,然后清理掉端边界以外的内存,这样在内存分配时也不用考虑内存碎片的问题。

    分代收集算法

      这种算法没用新的思想,只是根据内存的存活周期内存分为新生代和老年代,新生代对象的存活率较低,使用标记-清除算法或者标记-整理算法,老年代的存活率较高,使用复制算法。

  • 相关阅读:
    计算机网络
    一行代码实现字符串逆序输出
    移动前端开发初涉篇【2014/03/25】
    小识闭包【2013/07/18】
    [转载]IE6Bug之躲猫猫【2013/10/29】
    关于maven仓库镜像
    关于spring resttemplate超时设置
    关于springboot访问多个mysql库
    关于Java基础类型自动装箱(autoboxing)
    关于Java(JDBC连接数据库)
  • 原文地址:https://www.cnblogs.com/yu-xia-zheng-ye/p/13645578.html
Copyright © 2011-2022 走看看