JVM面试题求助

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

相关推荐

2024-11-18 16:08
福州大学 Java
影流之主:干10年不被裁,我就能拿别人一年的钱了,日子有盼头了
点赞 评论 收藏
分享
黑皮白袜臭脚体育生:可以看看我的开源仿b站前后端分离微服务项目,技术栈相当先进,符合企业校招需求,具体为springboot security, nacos,openfeign,gateway,redis,elasticsearch,rocketmq,minio,mybatis-plus,mybatis-plus-join,druid,jwt,swagger,gson,hutool,websocket,讯飞星火api,jave,xxl-job,zipkin,slueth,可快速下载所有用到的中间件和远程连接中间件软件而不用麻烦的去官网找包以及只需小改存放路径就可缓存前端静态资源的nginx和前端dist包,无需会任何前端极速实现本机运行前端,所有文档教程只在牛客,有各中间件启动教程,有配套简历写法速成简历,github已经330star
点赞 评论 收藏
分享
评论
点赞
2
分享
牛客网
牛客企业服务