Java Object.getClass()源碼分析

在這裏插入圖片描述

  1. 棧:Person對象引用
  2. 堆:person實例對象,Person.class信息
    person實例對象:
    1)mark word:對象頭,存放實例摘要信息,比如該對象的鎖信息、hash值、線程信息等;
    2)kclass元數據類型指針,指向Person類型元數據的指針;
    3)實例數據:對象的各種成員變量值。
    Person.class信息
    Person.class類的信息,方法、字段信息。
  3. 老生代:Person類型元數據
    1)mark word:類型頭,比如人類的鎖信息;
    2)kclass元數據類型指針:指向Person類型的類型指針;
    3)java mirror:Person.class類的鏡像信息。

反射機制

  1. Person對象指針,先得到Person對象存儲
  2. 根據Person對象的kclass元數據類型指針獲取到Person類型元數據
  3. 根據 Person類型元數據中的java mirror得到Person.class類的信息
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章