您好,登錄后才能下訂單哦!
引言
Java虛擬機本質是就是一個程序,當它在命令行上啟動的時候,就開始執行保存在某字節碼文件中的指令。Java語言的可移植性正是建立在Java虛擬機的基礎上。任何平臺只要裝有針對于該平臺的Java虛擬機,字節碼文件(.class)就可以在該平臺上運行。這就是“一次編譯,多次運行”。
kaffe虛擬機的簡要分析
kaffe虛擬機采用了模塊化的程序設計思想,它由多個獨立的子系統組成。從功能模塊上來分它主要分為:虛擬機總體驅動模塊,類裝載器模塊,類執行模塊, 數據區管理模塊,內存管理模塊,本地支持模塊等等。kaffe虛擬機簡要的程序流程圖如圖1所示。
498)this.style.width=498;" border="0" />
圖1:kaffe虛擬機簡要的程序流程圖
Java虛擬機的實現
Java 源程序的執行過程為: Java源程序(.java)經過Java編譯器編譯生成字節碼文件(.class),然后由類裝載器將字節碼文件裝載到方法區中,然后進行連接驗證,由Java虛擬機讀取字節碼,轉換為特定平臺的指令,并且在對應的CPU中執行。
本實現中采用的流程框架如下圖所示:
498)this.style.width=498;" border="0" />
圖2:本實現的主要框架
1、類裝載、連接及初始化
類文件包括:魔數(magic),次、主版本號,常量池,類或接口訪問修飾符,常量池索引(this_class和super_class),接口表,域表,方法表,類或接口的屬性信息。其中最復雜的內容是常量池,它類似于傳統語言編譯過程中用到的符號表。
從原始的class文件到可以被Java虛擬機執行的內部數據格式,需要經過裝載、連接和初始化這3個階段。
裝載是將class文件通過類裝載器裝載到在邏輯上被稱為方法區的內存單元中的過程。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。