目錄
1. JVM概述
1.1. Java程序結構
1.2. JVM作用
1.3. JVM規范和實現
2. JVM功能
2.1. 功能-編譯和運行
2.2. 功能-內存管理
2.3. 功能-即時編譯
1. JVM概述
1.1. Java程序結構
1.2. JVM作用
JVM全稱是Java Virtual Machine-Java虛擬機
- JVM作用:本質上是一個運行在計算機上的程序,職責是運行Java字節碼文件,編譯為機器碼交由計算機運行
1.3. JVM規范和實現
- JVM規范:
-
- Oracle官網:JDK 24 Documentation - Home
- <Java虛擬機規范>由Oracle制定,內容主要包含了Java虛擬機在設計和實現時需要遵守的規范,主要包含class字節碼文件的定義、類和接口的加載和初始化、指令集等內容。
- <Java虛擬機規范>是對虛擬機設計的要求,而不是對Java設計的要求,也就是說虛擬機可以運行在其他的語言比如Groovy、Scala生成的class字節碼文件之上。
- JVM常見實現:
2. JVM功能
2.1. 功能-編譯和運行
- 編譯字節碼文件:實時編譯字節碼中文件中的指令,成為機器碼之后交由計算機運行
2.2. 功能-內存管理
- 內存分配:JVM會自動為對象,方法等分配內存
- 垃圾回收:JVM中的垃圾回收機制會自動的回收不被引用的對象
2.3. 功能-即時編譯
- 即時編譯的作用:字節碼指令可以實時解釋為不同操作系統的機器碼,這樣就支持了跨平臺運行
- 即時編譯優化:對于熱點代碼的機器碼會保存在系統內存,再次執行可直接調用,提升執行效率
-
- 優化的原因:Java不做優化的性能是不如C,C++的,因為Java需要實時編譯字節碼指令再交給機器運行,而C,C++可以直接將源文件編譯為可執行文件
- 優化的原因:Java不做優化的性能是不如C,C++的,因為Java需要實時編譯字節碼指令再交給機器運行,而C,C++可以直接將源文件編譯為可執行文件