JAVA虛擬機(JVM)-- 壹

JVM 是可運行 Java 代碼的假想計算機 ,包括一套字節碼指令集、一組寄存器、一個棧、一個垃圾回收,堆 和 一個存儲方法域。JVM 是運行在操作系統之上的,它與硬件沒有直接的交互。
我們都知道 Java 源文件,通過編譯器,能夠生產相應的.Class 文件,也就是字節碼文件,而字節碼文件又通過 Java 虛擬機中的解釋器,編譯成特定機器上的機器碼 。也就是如下:
① Java 源文件——>編譯器——>字節碼文件
② 字節碼文件——>JVM——>機器碼
每一種平臺的解釋器是不同的,但是實現的虛擬機是相同的,這也就是 Java 爲什麼能夠跨平臺的原因了 ,當一個程序從開始運行,這時虛擬機就開始實例化了,多個程序啓動就會存在多個虛擬機實例。程序退出或者關閉,則虛擬機實例消亡,多個虛擬機實例之間數據不能共享。
 
 

線程

這裏所說的線程指程序執行過程中的一個線程實體。JVM 允許一個應用併發執行多個線程。Hotspot JVM 中的 Java 線程與原生操作系統線程有直接的映射關係當線程本地存儲、緩衝區分配、同步對象、棧、程序計數器等準備好以後,就會創建一個操作系統原生線程Java 線程結束,原生線程隨之被回收。操作系統負責調度所有線程,並把它們分配到任何可用的 CPU 上。當原生線程初始化完畢,就會調用 Java 線程的 run() 方法。當線程結束時,會釋放原生線程和 Java 線程的所有資源。
Hotspot JVM 後臺運行的系統線程主要有下面幾個:
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章