第一章JVM與Java體系結構
1.1JVM的整體結構
- HotSpot VM是目前市面上高效能虛擬機器的代表作之一。
- 它採用直譯器與及時編譯器並存的架構
1.2JVM的架構模型
java編譯器輸入的指令流基本上是一種基於棧的指令集架構,另外一種指令集架構是基於暫存器的指令集架構。
具體來說:這兩種架構之間的區別:
- 基於棧式架構的特點
-
- 設計和實現更簡單,適用於資源受限的系統
- 避開了暫存器的分配難題:使用零地址指令方式分配
- 指令流中的指令大部分是零地址指令,其執行過程依賴操作棧。指令集更小,編譯器容易實現
- 不需要硬體支援,可移植性更好,更好實現跨平臺
- 設計和實現更簡單,適用於資源受限的系統
- 基於暫存器架構的特點
-
- 典型的應用是x86的二進位制指令集:比如傳統的PC以及Android的的Davlik虛擬機器
- 指令集架構則完全依賴硬體,可移植性差
- 效能優秀和執行更高效
- 花費更少的指令去完成一項操作
- 在大部分情況下,基於暫存器架構的指令集往往都以一地址指令,二地址指令和三地址指令為主,而基於棧式架構的指令集卻是以零地址指令為主。
- 典型的應用是x86的二進位制指令集:比如傳統的PC以及Android的的Davlik虛擬機器
1.3JVM的生命週期
虛擬機器啟動
Java虛擬機器的啟動是通過引導類載入器(bootstrap class loader)建立一個初始類(initial class)來完成的,這個類是由虛擬機器的具體實現指定的。
虛擬機器的執行
- 一個執行中的java虛擬機器有者一個清晰的任務:執行Java程式
- 程式開始執行時他才執行,程式結束時他就停止
- 執行一個所謂的Java程式的時候,真真正正在執行的是一個叫做虛擬機器的程式
虛擬機器的退出
- 程式正常執行結束
- 程式在執行過程中遇到異常或錯誤而異常終止
- 由於作業系統出現錯誤而導致Java虛擬機器程式終止
- 某執行緒呼叫Runtime類或System類的exit方法,或Runtime類的halt方法,並且Java安全管理器也允許這次exit或halt操作
- 除此之外,JNI(Java Native Interface)規範描述了用JNI Invocation API來載入或解除安裝java虛擬機器時,Java虛擬機器的退出情況。
1.4JVM發展歷程
- 1996 Sun Classic VM
- 上面這個JVM只有直譯器
- 如果使用JIT編譯器,就需要進行外掛,但是一旦使用了JIT編譯器,JIT就會接管虛擬機器的執行系統。直譯器就不再工作。直譯器和編譯器不能配合工作。
- 現在是hotspot
- 還有Exact VM
- BEA的JRockit是世界上最快的JVM
- IBM的J9
相關文章
- 第一章 JVM與Java體系結構JVMJava
- 【JVM之記憶體與垃圾回收篇】JVM與Java體系結構JVM記憶體Java
- 【JVM體系結構】JVM
- 第一章 JVM記憶體結構JVM記憶體
- 1、JVM體系結構JVM
- 【JVM】體系結構及其細節JVM
- 第一章、計算機組成與體系結構計算機
- JVM - 整體結構JVM
- JVM(七):JVM記憶體結構JVM記憶體
- JVM的基本結構和JVM的記憶體結構JVM記憶體
- 【JVM】堆體系結構及其記憶體調優JVM記憶體
- JVM系列之Java記憶體結構詳解JVMJava記憶體
- JVM記憶體結構、Java記憶體模型和Java物件模型JVM記憶體Java模型物件
- JVM記憶體結構JVM記憶體
- jvm系列(二):JVM記憶體結構JVM記憶體
- JVM結構與機制JVM
- [Virtualization]ESXi體系結構與記憶體管理(一)體系結構記憶體
- JVM讀書筆記之java記憶體結構JVM筆記Java記憶體
- 第一章 MySQL體系結構和儲存引擎MySql儲存引擎
- Gef與MVC體系結構MVC
- 指令集結構與微體系結構
- java知識體系結構圖Java
- java中serverlet的體系結構JavaServer
- 深入理解 JVM 之 JVM 記憶體結構JVM記憶體
- 淺談JVM記憶體結構 和 Java記憶體模型 和 Java物件模型JVM記憶體Java模型物件
- 理解JVM(一):記憶體結構JVM記憶體
- JVM記憶體結構劃分JVM記憶體
- 第一章——計算機組成原理與體系結構基礎知識(6)計算機
- 程式設計體系結構(02):Java異常體系程式設計Java
- JVM之記憶體結構詳解JVM記憶體
- JVM學習(一)——記憶體結構JVM記憶體
- JVM及其記憶體結構劃分JVM記憶體
- MySQL體系結構與儲存引擎MySql儲存引擎
- 指標體系與樹型結構指標
- JVM結構-記憶體結構(執行時資料區)JVM記憶體
- Java體系結構對資訊保安的支援Java
- Java HotSpot效能引擎的體系結構 (轉)JavaHotSpot
- JVM的結構JVM