首頁  >  問答  >  主體

java - 为什么老年代垃圾回收效率比新生代低很多?

看过深入理解java虚拟机,书上这个问题以结论性的一句话带过了,面试的时候被问到了这个问题,老年代对象生存时间长,不容易被回收,所以效率低?感觉怪怪的

迷茫迷茫2763 天前495

全部回覆(1)我來回復

  • 黄舟

    黄舟2017-04-17 14:31:05

    從年代劃分的角度來講,我覺得問題是本末倒置了,年代劃分目的是區別長期存在對象和短時間存在對象。
    物件有可能長期存活,所以才會被放入老年代,標記整理過後,由於老年代的對像有很幾率繼續存活,所有回收的內存少。
    新生對像有可能朝生暮死,假如新生對像有80%的機率死亡,經過多輪篩選後,將仍存活的物件存入老年代。那麼從這樣的流程看來,老年代的物件回收效率果然低。

    回覆
    0
  • 取消回覆