面试的时候堆的垃圾回收是必不可少的,但是也有一部分面试官,不问你垃圾回收,问你新生代为什么是8:1:1
GC是统计学测算出内存使用超过98%以上时,内存应该被minor gc时回收一次。但实际应用中,我们不能较真的只给他们留下2%,换句话说当内存使用达到98%时才GC 就有点晚了,应该是多一些预留10%内存空间。当回收时,将Eden区和Survivor from中还存活着的对象一次性复制到另一块Survivor to区(这里进行复制算法),然后就清空调Eden区和Survivor from区中的数据。
之所以Eden区:Survivor from区是8:1,是因为JVM规定,两个Survivor区中from和to是相对的,根据每次进行MinorGC后哪个区被清空没有对象了,这个区就会成为to区,而通过复制算法复制的还存活下的对象所在的那个区,也就是有对象的区即为from(即from和to区会进行位置交换,所以在我们讲解新生代时,还会给这两个Survivor区加上S1和S2两个名称,而S1和S2位置则是固定的)
你明白了吗,欢迎留下您的评论