jvm面試題 新生代和 老年代的區別

 新生代和老年代的區別(阿里面試官的題目): java

所謂的新生代和老年代是針對於分代收集算法來定義的,新生代又分爲Eden和Survivor兩個區。加上老年代就這三個區。數據會首先分配到Eden區 當中(固然也有特殊狀況,若是是大對象那麼會直接放入到老年代(大對象是指須要大量連續內存空間的java對象)。),當Eden沒有足夠空間的時候就會 觸發jvm發起一次Minor GC。若是對象通過一次Minor GC還存活,而且又能被Survivor空間接受,那麼將被移動到Survivor空 間當中。並將其年齡設爲1,對象在Survivor每熬過一次Minor GC,年齡就加1,當年齡達到必定的程度(默認爲15)時,就會被晉升到老年代 中了,固然晉升老年代的年齡是能夠設置的。若是老年代滿了就執行:Full GC 由於不常常執行,所以採用了 Mark-Compact算法清理面試

相關文章
相關標籤/搜索