天天看點

JVM源碼實戰 - 對象頭

JVM是由一個對應角色的oop對象來描述Java對象

instanceOopDesc

用來描述普通執行個體對象

arrayOopDesc

用來描述數組對象

這些類型的oop對象均是繼承自oopDesc。

JVM源碼實戰 - 對象頭
oopDesc主要包含

  • _mark

    _mark是一個markOop執行個體,它描述了一個對象的頭資訊,用于存儲對象的運作時記錄資訊,如哈希值、GC分代年齡、鎖狀态标志、線程持有的鎖、偏向線程ID、偏向時間戳等

JVM源碼實戰 - 對象頭
  • _metadata
    • 一個普通_klass
    • 一個壓縮後的_compressed_klass