1.JVM的整體結構,JAVA代碼的執行流程,JVM的生命週期

1.JVM的整體結構

JVM整體上可以被分爲3層,如下圖所示,分爲上中下層。(針對HotSPot虛擬機)。
上層:JVM是用來解釋執行字節碼文件的,所以上層的入口是Class file。類裝載子系統Class Loader來會將字節碼文件加載到內存中生成一個大的Class對象。
中層:中層是運行時數據區Runtime Data area。包含五個部分:方法區,Java棧,本地方法棧,堆,程序計數器。其中方法區,堆是被多個線程共享的。Java棧,本地方法棧,程序計數器每個線程獨有。
下層:執行引擎。將class文件加載到內存中以後,執行引擎負責執行代碼。執行引擎會將高級語言翻譯成機器指令。
在這裏插入圖片描述

2.JAVA代碼的執行流程

如下圖,Java首先經過Java編譯器,被編譯成字節碼文件。然後被加載到JVM中。最後被執行引擎翻譯成機器指令並執行。現在的虛擬機都主要採用解釋執行和編譯執行兩者並存的方式來實現執行引擎。編譯執行是將熱點代碼(也就是經常執行的代碼)翻譯成機器指令,並且緩存起來,下次要用的時候,直接取,就不用再翻譯了,大大提高了效率。
在這裏插入圖片描述

3.JVM的生命週期

JVM的生命週期分爲JVM的啓動,運行,停止。
在這裏插入圖片描述
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章