JVM的概念 JVM是Java Virtual Machine的簡稱。意為Java虛擬機。 JVM使用軟體模擬Java位元組碼的指令集。 規範 java語言規範 語法 if else else if、函數等語法 詞法 行終結符、空白符、註釋、標識符、關鍵字等 java記憶體模型 類載入連接過程 異常 . ...
JVM的概念
- JVM是Java Virtual Machine的簡稱。意為Java虛擬機。
- JVM使用軟體模擬Java位元組碼的指令集。
規範
java語言規範
- 語法
if-else-else if、函數等語法 - 詞法
行終結符、空白符、註釋、標識符、關鍵字等 - java記憶體模型
- 類載入連接過程
- 異常
- ...
JVM規範
JVM主要定義二進位class文件和JVM指令集等。Java語言和JVM相對獨立,Groovy、Clojure、Scala等也可以運行在JVM中。
- Class文件格式
- 數字的內部表示和存儲
Byte -128 to 127 (-27 to 27 - 1) - returnAddress數據類型定義
指向操作碼的指針。不對應Java數據類型,不能在運行時修改。Finally實現需要 - 定義PC、堆、棧、方法區
- 整數、浮點數的表示與定義
- 特殊的方法
- <clinit>
- <init>
- VM指令集
- 類型轉化
l2i
- 出棧入棧操作
aload astore - 運算
iadd isub - 流程式控制制
ifeq ifne - 函數調用
invokevirtual invokeinterface invokespecial invokestatic
- 類型轉化
- JVM需要對Java Library 提供以下支持
- 反射 java.lang.reflect
- ClassLoader
- 初始化class和interface
- 安全相關 java.security
- 多線程
- 弱引用
- JVM的編譯
- 源碼到JVM指令的對應格式
- Javap
- JVM反彙編的格式
(index) (opcode) [ (operand1) [ (operand2)... ]] [(comment)]