Java 虛擬機

jopen 9年前發布 | 24K 次閱讀 虛擬機 Java開發

一、Java 虛擬機簡介

      Java 虛擬機是整個Java 平臺的基石,是Java 技術用以實現硬件無關與操作系統無關的關鍵部分,是Java 語言生成出極小體積的編譯代碼的運行平臺,是保障用戶機器免于惡意代碼損害的保護屏障。Java 虛擬機可以看作是一臺抽象的計算機。如同真實的計算機那樣,它有自己的指令集以及各種運行時內存區域。

      當我們說“Java虛擬機”的時候,可能指以下三種不同的東西:

      (1) 抽象規范。

      (2) 一個具體的虛擬機實現。

      (3) 一個運行中的虛擬機實例。

      Java虛擬機抽象規范僅僅是個概念,不同的廠商有著不同的具體實現。當運行一個Java程序的同時,也就在運行一個Java虛擬機實例。每個Java程序都運行于某個具體的Java虛擬機實現的實例上。

二、Java 虛擬機體系結構

     下面是JVM規范定義的標準結構:

Java 虛擬機

        Java虛擬機負責裝載class文件并執行。每個Java虛擬機都有一個類裝載器子系統,它根據給定的全限定名來裝載class文件(類或接口)。每個Java虛擬機都有一個執行引擎,它負責執行那些包含在被裝載類的方法中的指令。當Java虛擬機運行一個程序時,它需要內存來存儲許多東西,如字節碼,從已裝載的class文件中得到的其他信息,程序創建的對象,傳遞給方法的參數,返回值,局部變量,以及運算的中間結果等等,Java虛擬機把這些東西都組織到內存空間中,便于管理。

     注意:Java 虛擬機與Java 語言并沒有必然的聯系,它只與特定的二進制文件格式——Class 文件格式所關聯,Class 文件中包含了Java 虛擬機指令集(或者稱為字節碼、Bytecodes)和符號表,還有一些其他輔助信息。

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!