如何理解jvm的eden和survivor区,以及gc

 我来答
aohanglove
2015-04-01 · TA获得超过109个赞
知道答主
回答量:34
采纳率:50%
帮助的人:18.9万
展开全部
要理解eden和survivor区,先要知道垃圾收集算法中的 复制算法。

复制算法:将区域分成两部分,其中一部分作为保留空间,另一部分作为使用空间、当发生垃圾回收时,首先检查使用空间里有哪些对象是存活的,检查完之后把存活的对象复制到保留空间(这样复制过来的好处是减少了内存碎片,如果直接在使用空间清除的话,那空间会很零散)里,然后清洗使用空间。

这个eden就相当于是使用空间,survivor就相当于是保留空间,通常情况下eden会比survivor大的多,因为eden和survivor都是属于新生代(还有老生代,jvm 将堆分为新生代和老生代),新生代里的对象一般都是朝生夕死,所以活下来的不多,所以保留空间小一些就好了。

GC就是垃圾回收了,是java语言的一大特点,我们生成的对象空间不需要自己手动去释放,jvm自有GC线程来帮我们清理不用的对象。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式