关于JavaGC的问题,求大神解答

JavaGC中,Eden区不够的时候,会发生Minor GC,在发生Minor GC时,Eden区和Survival from区会把一些仍然存活的对象复制进Survival to区,并清除内存。
问题: 
有没有这种可能,发生Minor GC时,作为存活对象存储的那个Survival区不足以存储这些存活对象?
如果有,会发生什么?
#Java工程师#
全部评论
分配担保机制,存放到old区
点赞 回复 分享
发布于 2017-03-07 11:36
当Eden区满后会将对象存放到survivor区中,如果survivor区仍然存不下这些对象,gc收集器会将这些对象直接存放到old区。如果在survivor区中的对象足够老,也直接存放到old区,如果old区也满了,将会触发full gc,回收整个堆内存。
点赞 回复 分享
发布于 2017-03-07 08:22
《深入分析Java web技术内幕》 p216 也有说明
点赞 回复 分享
发布于 2017-03-07 08:17
答案找到啦:《深入理解Java虚拟机 JVM高级特性与最佳实践》P71 当Survivor空间不够时,需要依赖其他内存(这里指老年代)进行分配担保(Handle Promotion),如果Survivor空间不够,则直接通过分配担保机制进入老年代。
点赞 回复 分享
发布于 2017-03-07 00:38
如果survivor区空间不足的话,就需要老年代进行分配担保,将这些对象提前移入老年代中
点赞 回复 分享
发布于 2017-03-07 00:36
放进老年代
点赞 回复 分享
发布于 2017-03-07 00:31

相关推荐

06-26 18:30
门头沟学院 Java
据说名字越长别人越关注你的昵称我觉得我要被关注了:你问问这里面有多少是正经候选人,而不是乱打招呼的
点赞 评论 收藏
分享
星辰再现:裁员给校招生腾地方
点赞 评论 收藏
分享
fRank1e:吓得我不敢去外包了,但是目前也只有外包这一个实习,我还要继续去吗
点赞 评论 收藏
分享
就在我现在公司的隔壁每天经过都唏嘘不已(就是羡慕)什么时候可以到这里上班啊
柯基在debug:从大学毕业投简历到现在了,应届的时候我都面到终面了,现在工作四年了连简历初筛都过不了了
投递莉莉丝游戏等公司8个岗位 >
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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