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

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

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章