一、對象動態年齡判斷
當前放對象的Survivor區域裏(其中一塊區域,放對象的那塊S區),一批對象的總大小大於這塊Survivor區域內存大小的50%(-XX:TargetSurvivorRatio可以指定),那麼此時大於等於這批對象年齡最大值的對象,就可以直接進入老年代了。
例如Survivor區域裏現在有一批對象,年齡1+年齡2+年齡n的多個年齡對象總和超過了Survivor區域的50%,此時就會把年齡n(含)以上的對象都放入老年代。這個規則其實是希望那些可能是長期存活的對象,儘早進入老年代。對象動態年齡判斷機制一般是在minor GC之後觸發的。
年齡1+年齡2+...+年齡n>50%(To區大小)。假設n=10,
如果年齡1+年齡2+年齡3+年齡4+年齡5>50%了,那麼年齡爲6-10的這些對象直接挪到老年代。