1. 程式人生 > >JVM的分代年齡為什麼是15

JVM的分代年齡為什麼是15

在一次面試中,被問到JVM的分代年齡問題,最後面試官問了一句,為什麼它的分代年齡是15,而不是17或者16?當時有些太想當然,覺得這個和HashMap的負載因子是0.75類似,就答得是多次試驗後得出來的一個平衡的數字。後來面試就涼涼了,接著回去查了一下資料,原來原因是在MarkWord裡。

這就是一個MarkWord,其中物件的分代年齡佔4位,也就是0000,最大值為1111也就是最大為15.而不可能為16或者17之類的。