jvm架構

alexanderkenndy發表於2014-04-09
根據jvm規範,jvm的整體架構包含2個子系統和2個元件
兩個子系統:
1.Class loader 類裝載器子系統
2.Execution engine 執行引擎子系統
兩個元件:
1.Runtime data area 執行時資料區
2.Native interface 本地介面

Class loader作用
根據給定的全限定名類名(如java.lang.Object)將class檔案的內容裝載到Runtime data area 中的method area(方法區)。Java 程式設計師可以繼java.lang.ClassLoader 類來寫自己的Class loader。

Execution engine作用
執行classes 中的指令。任何JVM specification 實現(JDK)的核心是Execution engine, 換句話說:Sun 的JDK 和IBM 的JDK 好壞主要取決於他們各自實現Execution engine 的好壞。每個執行中的執行緒都有一個Execution engine 的例項。

Native interface作用
與native libraries 互動,是其它程式語言互動的介面。

Runtime data area作用
jvm記憶體所在區域,主要包括五個部分:Heap (堆), Method Area(方法區域), Java Stack(java棧), Program Counter(程式計數器), Native method stack(本地方法棧)。Heap 和Method Area 是被所有執行緒的共享使用的;而Java Stack, Program Counter 和Native method stack 是以執行緒為粒度的,每個執行緒獨自擁有。

相關文章