JVM面试题求助

JVM中为什么要有eden区?只有两块大小相等的survivor区域不行吗?
#字节跳动秋招提前批##面试题目#
全部评论
不行,你需要考虑一下gc,设想一下如果只有一次gc,那么两块区域完全够了。1满了,gc标记将存活的放到2里面;但是第二次gc怎么办,第二次gc不仅需要标记1还需要标记2中的存活元素,那这两部分的存活元素放到哪? 当然,上面的一种情况可以有一种解决方案,那就是别用复制算法而使用标记清楚算法,但是这样的话就不符合新生放置对象的特性了,新生本来就是生命周期比较短的,标记清楚效率比较低。 所以综合衡量性能以及使用的场景上必须要有eden
2 回复 分享
发布于 2021-08-26 19:45
eden区和survivor区的空间比是8:1,也就是说,百分之十的空间会浪费,如果去掉eden区,浪费的空间将达到百分之五十
点赞 回复 分享
发布于 2021-08-29 14:37

相关推荐

点赞 评论 收藏
分享
评论
点赞
2
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务