Java代碼是怎樣運行的?

之所以要在虛擬機中運行,是因爲它提供了可移植性。一旦Java代碼被編譯爲java字節碼,便可以在不同平臺的Java虛擬機上實現運行。此外,虛擬機還提供了一個代碼託管的環境,代替我們處理部分冗長而且容易出錯的事務,例如內存管理。

Java虛擬機將運行時內存劃分爲五個部分,分別爲方法區,堆,PC寄存器,Java方法棧和本地方法棧。java程序編譯而成的class文件,需要先加載至方法區中,方能在Java虛擬機中運行。

爲了提高效率,標準JDK中的HotSpot虛擬機採用的是一種混合執行的策略。它會解釋執行Java字節碼,然後會將其中反覆執行的熱點代碼,以方法爲單位進行即時編譯,翻譯成機器碼後直接運行在底層硬件之上。

HotSpot裝載了多個不同的即時編譯器,以便在編譯時間和生成代碼的執行效率之間做取捨。

 

 

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