面试题整理:请说明一下eden区和survial区指的是什么?工作原理又是什么?

请说明一下eden区和survial区指的是什么?工作原理又是什么?

本文主要根据《深入理解JVM》中内存回收策略,主要关注如下五个方面:
目前主流的虚拟机实现都采用了分代收集的思想,把整个堆区划分为新生代和老年代;新生代又被划分成Eden 空间、 From Survivor 和 To Survivor 三块区域。

我们把Eden : From Survivor : To Survivor 空间大小设成 8 : 1 : 1 ,对象总是在 Eden 区出生, From Survivor 保存当前的幸存对象, To Survivor 为空。一次 gc 发生后:
1)Eden 区活着的对象 + From Survivor 存储的对象被复制到 To Survivor ;
清空 Eden 和 From Survivor ;
颠倒 From Survivor 和 To Survivor 的逻辑关系: From 变 To , To 变 From 。可以看出,只有在 Eden 空间快满的时候才会触发 Minor GC 。而 Eden 空间占新生代的绝大部分,所以 Minor GC 的频率得以降低。当然,使用两个 Survivor 这种方式我们也付出了一定的代价,如 10% 的空间浪费、复制对象的开销等。

原文链接:https://www.jianshu.com/p/23b76b2092f5
其他回答参考:https://blog.csdn.net/fhy569039351/article/details/83024327

发布了18 篇原创文章 · 获赞 4 · 访问量 912

猜你喜欢

转载自blog.csdn.net/weixin_43698561/article/details/104362750