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