天天看點

java虛拟機運作過程

先看一張圖檔:

java虛拟機運作過程

這個就是java虛拟機的運作過程:

java作為一種安全的,可編譯的,平台移植的強類型語言,它的基礎就是jvm虛拟機,那麼就是說java代碼的運作過程也就是jvm虛拟機的運作過程.對于我們java的學習者來說,jvm是機器機器重要的.

這裡涉及到倆個名詞:編譯/運作

編譯(compile)時左半部分圖檔,就是說把java語言編譯成為位元組碼,這 .java就是我們寫的代碼,那麼 .class就是編譯之後的代碼,我們稱之為位元組碼.

-

運作(runtime)是右半部分圖檔,主要會涉及到幾個部分

- :類的裝載(loader):把編譯過的 .class檔案進行裝載,這個部分會把用static聲明的靜态變量一起裝載了.

- 位元組碼校驗(byte codeverifer):對裝載過的位元組碼進行校驗,這個步驟可以有效的避免木馬的侵入.也展現了java三大特性之一的代碼安全性.

- 注釋器(interpreter):位元組碼其實是jvm虛拟機認識的一種代碼,但是你的電腦卻是不認可這種代碼的,是以在這裡會把安全的位元組碼解釋成為二進制的機器語言.

- 運作(runtime):二進制的機器語言開始運作.

- 交給硬體處理(hardware):交給硬體顯示,說白了,無論是jdk,還是jvm都是一套代碼,那麼顯示到你的機器還是需要硬體的支援的.

中間的那個network是網絡加載,就是說可以從網絡過來位元組碼進行運作操作(當然更可以本地的位元組碼過來了),正因如此,更需要運作階段的自己嗎校驗了,不是嗎?!

jvm的特性會繼續介紹,謝謝,希望可以鞏固自己,幫助别人!