當前位置:
首頁 > 最新 > JVM基於棧的解釋器執行原理

JVM基於棧的解釋器執行原理

繼上一篇位元組碼分析finally塊對return返回值的影響,好多人對局部變數表和操作數棧之間的關係搞不清楚,下面通過圖解來描述局部變數表和操作數棧直接的關係。

通過下面這段代碼來解釋JVM基於棧的執行原理

查看位元組碼的命令:javap -verbose ByteCode.class

add方法的位元組碼如下:

根據上面位元組碼畫出下面局部變數表和操作數棧之間的操作關係。

局部變數表和操作數棧關係

圖中調用add(10,20)傳入的參數是a=10;b=20。

指令0執行後:局部變數表中有兩個數字10、和20,操作數棧一個值0,程序計數器指向第0行位元組碼指令

指令1執行後:局部變數表中有三個數字10、20和0,操作數棧沒有值,程序計數器指向第1行位元組碼指令

指令2執行後:局部變數表中有三個數字10、20和0,操作數棧一個值10,程序計數器指向第2行位元組碼指令

指令3執行後:局部變數表中有三個數字10、20和0,操作數棧兩個值10和20,程序計數器指向第3行位元組碼指令

指令4執行後:局部變數表中有三個數字10、20和0,操作數棧一個值30,程序計數器指向第4行位元組碼指令

指令5執行後:局部變數表中有三個數字10、20和30,操作數棧沒有值,程序計數器指向第5行位元組碼指令

指令6執行後:局部變數表中有三個數字10、20和30,操作數棧一個值30,程序計數器指向第6行位元組碼指令

指令7執行後:將棧中的數字返回給調用方法,並銷毀此棧幀

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 安卓網 的精彩文章:

這就尷尬了,小米年度旗艦暴降600
連載 殺人動機 26
手機流量消耗快?趕緊這樣做
你在國內因為蘋果而險些賣腎,我在印度的市場看到爛大街的蘋果沒人買

TAG:安卓網 |

您可能感興趣

理解隨機森林:基於Python的實現和解釋
從語義上理解卷積核行為,UCLA朱松純等人使用決策樹量化解釋CNN
Magic Leap One真機演示,解釋特定用例、工作原理
JVM和Python解釋器的硬碟夜話
關於HPV篩查的解釋
Marvel宇宙的人類起源彙整和解釋乾貨整理
詳細解釋路由器三種無線連接方式,WISP、Client+AP、WDS的區別
簡單的機械動圖解釋複雜的機構原理
「蓋亞之謎」的合理解釋
可視化解釋壓縮演算法的工作原理
小科普|BIOS設置選項詳細解釋①——CPU核心篇
BIOS設置選項詳細解釋——CPU核心篇
新手最難理解的PR操作,關於合併剪輯與解釋素材,你真的知道嗎?
八學術理中的墓庫正確解釋
程序的構造和解釋
命理解釋「讀書無用論」
BIOS設置選項詳細解釋——系統監視&系統啟動篇
SOM-VAE:時間序列的可解釋離散表示學習
對BLACKPINK舞台中被請下台,主辦方終於道歉,解釋原因是這樣的
Linux創始人解釋為什麼ARM架構無法在伺服器領域取得成功