Java中的執行引擎是什麼?


Java執行引擎是JVM(Java虛擬機器)的核心元件,它與JVM的不同記憶體區域進行通訊。此元件用於執行透過類載入器分配到執行時資料區域的位元組碼。此外,每個Java類檔案都透過執行引擎執行,並且執行應用程式中存在的每個執行緒都是虛擬機器執行引擎的一個獨立例項。

因此,透過閱讀本文,您將更詳細地瞭解執行引擎,但在那之前,讓我們先了解什麼是Java虛擬機器。

理解Java虛擬機器

Java虛擬機器(JVM)是駐留在計算機上的抽象虛擬機器,它為Java位元組碼提供執行時環境以執行。但是,為了執行Java位元組碼,需要使用執行引擎。

Java執行時環境或JRE是Java虛擬機器(JVM)的實現。JVM檢查位元組碼,解釋它,並執行相同的位元組碼以顯示輸出。

JVM的主要功能是執行編譯後的.class檔案(即位元組碼)併產生輸出。但是,每個作業系統都有一個不同的JVM,但在所有作業系統上產生的位元組碼輸出都是相同的。這意味著在Linux作業系統上生成的位元組碼能夠在Windows作業系統上執行,反之亦然,這使得Java成為一種平臺無關的語言。

因此,事不宜遲,讓我們深入探討本文,瞭解Java中的執行引擎及其不同元件。

Java中的執行引擎

如上所述,為了執行Java位元組碼,使用執行引擎。這是因為,通常情況下,Java位元組碼將以人類可讀的形式編寫。因此,使用執行引擎,人類可讀的位元組碼將被轉換為Java虛擬機器中機器可以輕鬆執行的語言。

為了改變語言,執行引擎包含三個主要子元件,包括:

  • 直譯器

  • JIT編譯器

  • 垃圾收集器

讓我們詳細瞭解每個元件!

直譯器

此元件讀取位元組碼並將其解釋(轉換)為機器碼(原生代碼),並以順序方式執行它們。透過接受檔名引數,此元件從命令列執行應用程式。可以使用以下原型命令:

java <_compiled_file_name_without_extension_>

但是,直譯器的缺點是它每次都會轉換或解釋,即使是相同的方法多次也是如此,這反過來會降低系統的效能。因此,為了克服這個問題,在1.1版本中引入了JIT(**Just In Time**)編譯器,這將在下面討論。

JIT(Just In Time)編譯器

JIT編譯器的主要目的是提高效能。換句話說,它是為了克服直譯器執行速度慢的缺點而引入的,並提高了系統的效能。

此外,為了減少編譯所需的時間,JIT編譯器同時編譯位元組碼的相似部分。

  • 在執行時,JVM載入類檔案,確定其語義,並執行適當的計算。由於解釋期間額外的處理器和記憶體使用,Java應用程式的功能比本地應用程式慢。

  • JIT編譯器透過在執行時將位元組碼編譯為本地機器碼來幫助提高Java程式的效能。

  • 當呼叫方法時,JIT編譯器始終啟用並被啟用。對於已編譯的方法,JVM不會進行轉換或解釋,而是直接呼叫已編譯的程式碼。從理論上講,如果編譯不需要任何處理器時間或記憶體使用,則本地編譯器和Java編譯器的速度將相同。

  • JIT編譯需要處理器時間和記憶體使用。因此,在Java虛擬機器啟動時,會呼叫數千個方法。因此,同時編譯所有這些方法會嚴重影響啟動時間,即使最終結果是非常好的效能最佳化。

分析器

JIT編譯器的一部分是分析器工具,用於在JVM級別監控Java位元組碼結構和操作。

垃圾收集器

這是一個程式或執行引擎元件的一部分,它在後臺執行並自動管理記憶體。此元件的主要目的是透過收集和刪除未引用的物件來釋放堆記憶體。

總結

在本文結束時,我們希望您對Java中的執行引擎及其不同的元件有了更好的理解。

如果您覺得這篇文章有幫助,請與您的朋友、同事和其他需要更好地理解執行引擎及其不同元件的人分享。如果您有任何其他疑問,請在下面的評論部分發表您的想法。

更新於:2022年10月13日

2K+ 瀏覽量

啟動您的職業生涯

透過完成課程獲得認證

開始
廣告
© . All rights reserved.