【读书会第十二期】《深入理解Java虚拟机》 第2章 Java虚拟机垃圾回收
【摘要】 垃圾回收算法引入计数法顾名思义,此种算法会在每一个对象上记录这个对象被引用的次数,只要有任何一个对象引用了次对象,这个对象的计数器就+1,取消对这个对象的引用时,计数器就-1。任何一个时刻,如果该对象的计数器为0,那么这个对象就是可以回收的。看代码:可达性分析算法通过一系列的‘’GC Roots‘’对象作为起点进行搜索,如果在‘’GC Roots‘’和对象之间没有可达的路径(引用链),则称该...
垃圾回收算法
引入计数法
顾名思义,此种算法会在每一个对象上记录这个对象被引用的次数,只要有任何一个对象引用了次对象,这个对象的计数器就+1,取消对这个对象的引用时,计数器就-1。任何一个时刻,如果该对象的计数器为0,那么这个对象就是可以回收的。
看代码:
可达性分析算法
通过一系列的‘’GC Roots‘’对象作为起点进行搜索,如果在‘’GC Roots‘’和对象之间没有可达的路径(引用链),则称该对象是不可达的,被判定不可达的对象不一定会成为可回收对象。被判定不可达的对象至少要经历两次标记过程,如果在这两次标记过程中扔没有逃脱成为可回收对象的可能性,则基本就成为可回收的对象了。
GC Root 引用
不同的线会有不同的回收策略
垃圾收集器
Java 1.8 前
Java 1.8 后
内存分配回收策略
- 对象优先在Eden分配
- 大对象直接进入老年代
- 长期存活的对象将进入老年代
- 动态对象年龄判定
- 空间分配担保
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)