【读书会第十二期】《深入理解Java虚拟机》 第2章 Java虚拟机垃圾回收

举报
小浪 发表于 2022/05/06 11:10:36 2022/05/06
【摘要】 垃圾回收算法引入计数法顾名思义,此种算法会在每一个对象上记录这个对象被引用的次数,只要有任何一个对象引用了次对象,这个对象的计数器就+1,取消对这个对象的引用时,计数器就-1。任何一个时刻,如果该对象的计数器为0,那么这个对象就是可以回收的。看代码:可达性分析算法通过一系列的‘’GC Roots‘’对象作为起点进行搜索,如果在‘’GC Roots‘’和对象之间没有可达的路径(引用链),则称该...

垃圾回收算法

引入计数法

顾名思义,此种算法会在每一个对象上记录这个对象被引用的次数,只要有任何一个对象引用了次对象,这个对象的计数器就+1,取消对这个对象的引用时,计数器就-1。任何一个时刻,如果该对象的计数器为0,那么这个对象就是可以回收的。

看代码:


引用计数法.png


可达性分析算法

通过一系列的‘’GC Roots‘’对象作为起点进行搜索,如果在‘’GC Roots‘’和对象之间没有可达的路径(引用链),则称该对象是不可达的,被判定不可达的对象不一定会成为可回收对象。被判定不可达的对象至少要经历两次标记过程,如果在这两次标记过程中扔没有逃脱成为可回收对象的可能性,则基本就成为可回收的对象了。

可达性分析算法.png

GC Root 引用

不同的线会有不同的回收策略



GC Root.png

垃圾收集器

Java 1.8 前

Java 1.8 后

内存分配回收策略

  1. 对象优先在Eden分配
  2. 大对象直接进入老年代
  3. 长期存活的对象将进入老年代
  4. 动态对象年龄判定
  5. 空间分配担保



【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。