架构师训练营 作业 9
请简述 JVM 垃圾回收原理。
定义:把JVM堆中的已经不再被使用的对象清理掉,释放宝贵的内存资源,被称为垃圾回收。
判断方法:
判断对象是否生存:可达性分析算法
线程栈帧中的局部变量;
从方法区的静态变量出发,将变量引用的对象进行标记,然后看这些被标记的对象是否引用了其他对象,继续进行标记,所有被标记过的对象都是被使用的对象,而那些没有被标记的对象就是可回收的垃圾对象。
释放的方法:
清理:将要被清理掉的对象所在内存空间标记为空闲;
压缩:将存活的对象拷贝放在一段连续的内存空间中
复制:将对空间分成两部分,一部分创建对象,当这部分空间用完的时候,将标记过的可用对象复制到另一个空间中;
分代垃圾回收的算法本质就是复制的算法。
版权声明: 本文为 InfoQ 作者【Arthur】的原创文章。
原文链接:【http://xie.infoq.cn/article/7209eb1af16af4b4aed561ea0】。
本文遵守【CC-BY 4.0】协议,转载请保留原文出处及本版权声明。
评论