33.为什么需要把Java堆分代?

 

1.堆分代思想

1.Java将堆区分为了新生代和老年代。新生代又分为了Eden区、Survivor区。老年代存放着经历多次GC仍然存活的对象。
在这里插入图片描述
2.分代的唯一的理由就是优化GC性能。如果没有分代,那么所有的对象都放在一起,GC的时候需要找到哪些对象没用,这样需要对整个堆区进行扫描,而许多对象都是朝生夕死的,如果分代的话,把新创建的对象放到某一个地方,当GC的时候先把这块“朝生夕死”对象的区域进行回收,就能够腾出很大的空间出来。
在这里插入图片描述

posted @ 2020-11-18 15:36  跃小云  阅读(209)  评论(0编辑  收藏  举报