Java虛擬機器教學


Java虛擬機器是一個虛擬機器,一個具有自己的ISA,自己的記憶體,棧,堆等的抽象計算機。它是一個管理系統記憶體並在執行時環境中驅動Java程式碼或應用程式的引擎。 它在主機作業系統上執行,並將對資源的需求放在作作業系統之上。

面向讀者

本教學適用於希望在任何作業系統或裝置上執行其Java程式碼和其他應用程式,以及優化和管理程式記憶體的軟體專業人員。

提前條件

在開始學習本教學之前,我們假設您對Java程式設計有基本的了解。 如果您不熟悉這些概念,建議您首先閱讀Java程式設計教學,以了解本教學中提到的主題。

內容目錄

  • Java虛擬機器(JVM)簡介 - JVM是一個規範,只要它們符合規範,就可以有不同的實現。
  • Java虛擬機器(JVM)架構 - 執行引擎包括垃圾收集器和JIT編譯器。JVM有兩種形式 - 用戶端和伺服器。這兩者共用相同的執行時程式碼,但使用的是JIT。
  • Java虛擬機器(JVM)類載入器 - JVM以動態方式管理載入,連結和初始化類以及介面的過程。在載入過程中,JVM查詢類的二進位制表示並建立它。
  • Java虛擬機器(JVM)執行時資料區 - JVM規範定義了在執行程式期間所需的某些執行時資料區域。其中一些是在JVM啟動時建立的。其他是執行緒原生的,只有在建立執行緒時才會建立(並線上程被銷毀時銷毀)。
  • Java虛擬機器(JVM)JIT編譯器 - 在本章中將學習JIT編譯器,以及編譯語言和解釋語言之間的區別。
  • Java虛擬機器(JVM)編譯級別 - JVM支援五種編譯級別 - 編譯器;C1完全優化(無分析);帶呼叫和後沿計數器的C1(輕型分析);C1具有完整的分析;C2(使用前面步驟中的分析資料);
  • Java虛擬機器(JVM)32b與64b - 在32b機器上,只能安裝32b版本的JVM。在64b機器上,使用者可以選擇32b和64b版本。但是這有一些細微差別會影響Java應用程式的執行方式。
  • Java虛擬機器(JVM)JIT優化 - 在本章中,我們將介紹JIT如何優化。
  • Java虛擬機器(JVM)垃圾收集 - Java物件的生命周期由JVM管理。當程式程式碼中建立了一個物件以後,不必擔心它生命週期的其它部分。JVM將自動查詢那些不再使用的物件,並從堆中回收它們的記憶體。
  • Java虛擬機器(JVM)分代GC - 大多數JVM將堆分為三代 - 年輕一代(YG),老一代(OG)和永久一代(也稱為終身代)。
  • Java虛擬機器(JVM)調整GC - 在本章中將討論如何調整GC。堆大小是Java應用程式效能的重要因素。如果它太小,那麼它將經常被填充,因此,必須經常由GC收集。另一方面,如果只增加堆的大小,雖然它需要不那麼頻繁地收集,但是暫停的長度會增加。