1、Java 虛擬機簡介 spa
Java 虛擬機是整個Java 平臺的基石,是Java 技術用以實現硬件無關與操做系統無關的關鍵部分,是Java 語言生成出極小體積的編譯代碼的運行平臺,是保障用戶機器免於惡意代碼損害的保護屏障。Java 虛擬機能夠看做是一臺抽象的計算機。如同真實的計算機那樣,它有本身的指令集以及各類運行時內存區域。 操作系統
當咱們說「Java虛擬機」的時候,可能指如下三種不一樣的東西: .net
(1) 抽象規範。 code
(2) 一個具體的虛擬機實現。 對象
(3) 一個運行中的虛擬機實例。 接口
Java虛擬機抽象規範僅僅是個概念,不一樣的廠商有着不一樣的具體實現。當運行一個Java程序的同時,也就在運行一個Java虛擬機實例。每一個Java程序都運行於某個具體的Java虛擬機實現的實例上。 內存
2、Java 虛擬機體系結構 get
下面是JVM規範定義的標準結構: 虛擬機
Java虛擬機負責裝載class文件並執行。每一個Java虛擬機都有一個類裝載器子系統,它根據給定的全限定名來裝載class文件(類或接口)。每一個Java虛擬機都有一個執行引擎,它負責執行那些包含在被裝載類的方法中的指令。當Java虛擬機運行一個程序時,它須要內存來存儲許多東西,如字節碼,從已裝載的class文件中獲得的其餘信息,程序建立的對象,傳遞給方法的參數,返回值,局部變量,以及運算的中間結果等等,Java虛擬機把這些東西都組織到內存空間中,便於管理。 編譯
注意:Java 虛擬機與Java 語言並無必然的聯繫,它只與特定的二進制文件格式——Class 文件格式所關聯,Class 文件中包含了Java 虛擬機指令集(或者稱爲字節碼、Bytecodes)和符號表,還有一些其餘輔助信息。