1. 程式人生 > >虛擬機字節碼執行引擎

虛擬機字節碼執行引擎

字節 定位 bsp cal ria 結構 幀結構 棧幀 最大

引言

  執行引擎在執行Java代碼時可能會有解釋執行(解釋器執行)和編譯執行(JIT產生本地代碼執行)。

運行時棧幀結構

  棧幀存儲了局部變量表、操作數棧、動態鏈接、方法返回地址。執行引擎運行的所有字節碼指令都只針對虛擬機棧頂的棧幀而言。

局部變量表

  局部變量表(Local Variable Table)是一組變量值存儲空間,用於存放方法參數、方法內部定義的局部變量。

  虛擬機通過索引定位方式使用局部變量表,索引範圍在0~max_locals(屬於Code屬性,局部變量表的最大Slot數量),如果訪問32位數據類型變量時,索引 n 代表使用第 n 個Slot,如果是64位數據類型變量(double、long),代表使用 n 和 n + 1 個Slot。

  局部變量不賦初始值是不會有零值的。

虛擬機字節碼執行引擎