采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
当Eden区满了时,触发一次YGC,GC过后有个对象还存活,就会被放入Survivor区,那如果Survivor区这个时候也是满的,并且其内部的对象年龄没有达到15,会怎么样?是有一部分直接晋升老年代吗?这一部分是多少?是Eden区即将放入Survivor区的对象数量吗?这一部分将晋升老年代的对象是Survivor区中年龄偏大的那些吗?
Survivor区分成from和to,GC开始前,对象是存在于eden和from区的,在一次gc后留下的对象进入to区,然后from区和to区交换位置,就是原来的from相当于现在的头,因为清空了,原来的to相当于现在的from区,当然这都是逻辑上的,并没有物理上的操作。如果to区也满了,就全部进入老年代中。
你说的场景,如果Eden满了,Survivor也满了,也就是gc到时候,无法进入to区,也就是to区满了,那么会先把to区的对象全部放入老年代,不管对象年龄是否到15都移到老年代了,如果这个时候,to区还是放不下新对象,那就直接把新对象放到老年代
非常感谢!
登录后可查看更多问答,登录/注册
无论是要准备面试还是内功提升,只要你做Java,就需要学习JVM
940 2
1.3k 2
877 1
1.1k 7
1.0k 5