8 虛擬機字節(jié)碼執(zhí)行引擎

本篇及相關的幾篇文章是《深入理解 Java 虛擬機:JVM 高級特性與最佳實踐(第 2 版)》(周志明,機械工業(yè)出版社)這本書的讀書筆記,文章中多使用思維導圖列出一些章節(jié)中的知識點。感謝原書作者的精彩撰寫,歡迎對 Java 虛擬機感興趣的讀者閱讀原書。
本人從事 Android 開發(fā)多年,讀這本書,作為對過去所學相關知識的系統(tǒng)梳理和總結。個人感覺這本書是一些表面代碼的深入解釋,以及解決一些問題或運用一些技術的行動指南。讀完這本書,對一些東西的看法猶如從黑盒子中躍入光明世界。
如果本篇文章的讀者發(fā)現(xiàn)有錯誤或不足的地方,歡迎評論區(qū)指出。

8.1 概述

執(zhí)行引擎是 Java 虛擬機最核心的組成部分之一。“虛擬機” 是一個相對于 “物理機”的概念,這兩種機器都有代碼執(zhí)行能力,其區(qū)別是物理機的執(zhí)行引擎是直接建立在處理器、硬件、指令集和操作系統(tǒng)層面上的,而虛擬機的執(zhí)行引擎是由自己實現(xiàn)的,因此可以自行制定指令集與執(zhí)行引擎的結構體系,而且能夠執(zhí)行那些不被硬件直接支持的指令集格式。

8.2 運行時棧幀結構

運行時棧幀結構.png

棧幀的概念結構

棧幀的概念結構

8.3 方法調(diào)用

方法調(diào)用.png

8.4 基于棧的字節(jié)碼解釋執(zhí)行引擎

說明虛擬機是如何執(zhí)行方法中的字節(jié)碼指令的。


基于棧的字節(jié)碼解釋執(zhí)行引擎.png

編譯過程

編譯過程

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

  • 一 她把碎發(fā)向上撩起,卻越像雄性獅虎的鬢毛。 “來了?!眳鞘可阉f到李小葵手里,語氣帶著些許疑問。看著外面的雨,...
    去日苦多閱讀 441評論 0 0
  • 在Java 5以前,是用synchronized關鍵字來實現(xiàn)鎖的功能。 synchronized關鍵字可以作為方法...
    fireshort閱讀 1,297評論 0 2
  • 先學習一個命令 ng g m core上面這個命令就是要自動生成模塊 在 app 目錄下面自動生成一個文...
    神豪VS勇士贏閱讀 457評論 0 0
  • 昨天假期休完,離開了熟悉的親人們。又一次踏上征途。這一個多月的休假給我大腦的充擊還是蠻大的。上班和在家休假兩種狀態(tài)...
    放松放開放下閱讀 230評論 0 2

友情鏈接更多精彩內(nèi)容