深入了解JVM,就必須了解JVM的結構。
下圖展示了JVM的主要結構:
可以看出,JVM主要包括四個部分:
第一部分:類加載器(Class Loader)
第二部分:執行引擎(Execution Engine)
第三部分:運作時資料區(Runtime Data Area,也稱記憶體區),記憶體區又包含:
(1)方法區(Method Area)
(2)堆(HEAP)
(3)Java虛拟機棧(Java VM Stack)
(4)程式計數器(Program Counter Register,亦簡稱PC Register)
(5)本地方法棧(Native Method Stack)
- 第四部分:本地方法接口(Native Interface)
注意點強調:
在運作時資料區,方法區和堆是所有Java線程共享的,而Java虛拟機棧、本地方法棧和程式計數器則是每個線程私有的。
(1)類是如何加載?加載的機制是什麼?--》入口(未完待續)
(2)運作時資料區,每個區都存放着什麼資訊?各自的功能有哪些?--》入口(未完待續)