面试题: 堆空间为什么要分代

堆空间为什么要分代

经研究,不同对象的生命周期不同。70%-90%的对象都是临时对象。其实不分代完全可以,分代的唯一理由就是优化GC性能,如果没有分代,那所有的对象都在一块,就如同把一个学校的人都关在一个教室。GC的时候要找到哪些对象没用,这样就会对堆的所有区域进行扫描。而很多对象都是朝生夕死的,如果分代的话,把新建的对象放到某一地方,当GC的时候先把这块存储“朝生夕死”对象的区域进行回收,这样就会腾出很大的空间出来。

posted @ 2021-01-18 14:13  天宇轩-王  阅读(83)  评论(0编辑  收藏  举报