zoukankan      html  css  js  c++  java
  • JAVA--GC 垃圾回收机制----可达性分析算法

    在JVM 中,java 为我们提供可有效的垃圾回收机制,GC ,GC的创建无疑是为了缓解内存压力、保存有效数据、回收垃圾无效数据;

    在此之前GC在我的理解中,一直只是个概念,内存中出现垃圾,GC来回收一下,处理下;但是对其内部如何定义一个对象是否是'垃圾'并不知晓!

    昨天在工作的时候,为了理解native 关键字的使用的,顺便也看到了一些blog对它的认知见解,我也学习了一下,如下是我的总结,希望也能有所收获吧。

    GC回收对象定义规则算法:

    可达性分析算法:

    先看图:【来源网友的blog ,做了下标注】

    大家可能会对这个GC root 感兴趣了:我的理解是就是一个GC自己规定的有效对象根节点集合!!至于这个集合里面有啥玩意,能力不够,目前不在纠结!

    然后从图上可以看出,从这个GC根集合里的所有元素(途中的GC roots 算一个元素)开始,网上查找被引用(指针含义类似)记录,所有被引用的对象都是有效对象,说明它还是有用的,不用回收;然后看object5 出来的应用,说实话,这个应用已经没有必要了,全部都是’‘没用的’对象,等待被GC回收吧!

    以上就是我对可达性分析算法的初步理解。

    等等!!!!!!!!!!!求救麦待。。。。。。。

    突然要记录一下:目前大多数的JVM 使用的是

    分代回收算法:将堆内存分为新生代和老年代。对这两部分分别使用不同的回收算法。

    老年代中存放大对象和长期存活的对象,且对象较多,一般使用标记-清除算法或者标记-整理算法。[可达性分析算法做基础]

    新生代存活对象较少,一般使用复制算法

    有的朋友会想到那具体的GC机制,如何回收这些对象内存的呢?以上红底色的算法查询下吧!!!

  • 相关阅读:
    jxl导入/导出excel
    iText导出pdf、word、图片
    Java CSV操作(导出和导入)
    Spring3.0+Hibernate+Atomikos集成构建JTA的分布式事务--解决多数据源跨库事务
    jQuery插件:跨浏览器复制jQuery-zclip
    微信小程序之表单提交
    微信小程序只之全局存储
    微信小程序之工具js封装与使用
    重构的艺术 深入认识
    重构的素养
  • 原文地址:https://www.cnblogs.com/Ankermaker/p/10435847.html
Copyright © 2011-2022 走看看