写点什么

架构师训练营 总结 9

用户头像
Arthur
关注
发布于: 2020 年 12 月 20 日

JVM 垃圾回收

把JVM堆中的已经不再被使用的对象清理掉,释放宝贵的内存资源,被称为垃圾回收。

对象生存分析

通过可达性分析;

  1. 线程栈帧中的局部变量;

  2. 从方法区的静态变量出发,将变量引用的对象进行标记,然后看这些被标记的对象是否引用了其他对象,继续进行标记,所有被标记过的对象都是被使用的对象,而那些没有被标记的对象就是可回收的垃圾对象。



回收的三种方法

  1. 清理

将要被清理掉的对象所在内存空间标记为空闲;

  1. 压缩

将存活的对象拷贝放在一段连续的内存空间中

  1. 复制

将对空间分成两部分,一部分创建对象,当这部分空间用完的时候,将标记过的可用对象复制到另一个空间中;



分代垃圾回收

  1. 新生代

Eden->From->To

  1. 老年代

  2. 原因:实际过程中,大部分的对象生存时间很短

  3. 本质:复制算法



发布于: 2020 年 12 月 20 日阅读数: 9
用户头像

Arthur

关注

Every Step Counts 2019.12.13 加入

还未添加个人简介

评论

发布
暂无评论
架构师训练营 总结9