1. 程式人生 > >Java程式碼是怎樣執行的?

Java程式碼是怎樣執行的?

之所以要在虛擬機器中執行,是因為它提供了可移植性。一旦Java程式碼被編譯為java位元組碼,便可以在不同平臺的Java虛擬機器上實現執行。此外,虛擬機器還提供了一個程式碼託管的環境,代替我們處理部分冗長而且容易出錯的事務,例如記憶體管理。

Java虛擬機器將執行時記憶體劃分為五個部分,分別為方法區,堆,PC暫存器,Java方法棧和本地方法棧。java程式編譯而成的class檔案,需要先載入至方法區中,方能在Java虛擬機器中執行。

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

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