亚洲视频二区_亚洲欧洲日本天天堂在线观看_日韩一区二区在线观看_中文字幕不卡一区

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.430618.com 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

作為開發人員,了解 JVM 的架構非常重要,因為它使我們能夠更有效地編寫代碼。

什么是 JVM?

虛擬機是物理機的軟件實現。JAVA 是根據 WORA(一次編寫,隨處運行)的概念開發的,它在 VM 上運行。編譯器將 Java 文件編譯為 Java .class 文件,然后將該 .class 文件輸入到 JVM 中,JVM 加載并執行該類文件。下面是JVM的架構圖。

JVM 是如何工作的?

如上架構圖所示,JVM主要分為三個子系統:類加載器子系統、運行時數據區、執行引擎。

1. 類加載器子系統

Java 的動態類加載功能由類加載器子系統處理。它加載,鏈接,并在運行時而不是編譯時第一次引用類時初始化類文件。

1)加載

類將由該組件加載。BootStrap ClassLoader、Extension ClassLoader 和 Application ClassLoader 是三個有助于實現它的類加載器。

l BootStrap ClassLoader – 負責從引導類路徑加載類,除了 rt.jar。此加載程序將獲得最高優先級。

l Extension ClassLoader – 負責加載 ext 文件夾 (jrelib) 中的類。

l Application ClassLoader——負責加載Application Level Classpath、路徑提到的環境變量等。

上述類加載器在加載類文件時將遵循委托層次算法。

2)鏈接

l 驗證 - 字節碼驗證器將驗證生成的字節碼是否正確,如果驗證失敗,我們將收到驗證錯誤。

l 準備 - 對于所有靜態變量,內存將被分配并分配默認值。

3)初始化

這是類加載的最后階段,在這里,所有靜態變量都將被賦予原始值,并且將執行靜態塊。

2. 運行時數據區

運行時數據區分為五個主要部分:

1)方法區——所有類級別的數據都將存儲在這里,包括靜態變量。每個JVM只有一個方法區,它是一個共享資源。Java培訓班的課程都是系統全面的整體,無論個人基礎的好壞,都能真正做到從0開始,循序漸進的過渡到實際項目演練,在實際項目中驗證所學知識的掌握程度,這是個人自學難以企及的巨大優勢。

2)堆區——所有對象及其對應的實例變量和數組都將存儲在這里,每個 JVM 也有一個堆區。Method 和 Heap 區域為多個線程共享內存。

3)堆棧區——對于每個線程,將創建一個單獨的運行時堆棧。對于每個方法調用,都會在堆棧內存中創建一個條目,稱為堆棧幀。所有局部變量都將在堆棧內存中創建。堆棧區域是線程安全的,因為它不是共享資源。Stack Frame 分為三個子實體:

l 局部變量數組 - 與方法相關,涉及多少局部變量以及相應的值將存儲在這里。

l 操作數棧——如果需要執行任何中間操作,操作數棧充當運行時工作區來執行操作。

l 幀數據——與方法對應的所有符號都存儲在這里。在任何異常的情況下,catch 塊信息將保存在幀數據中。

4)PC 寄存器——每個線程都有單獨的 PC 寄存器,用于保存當前執行指令的地址,一旦指令執行,PC 寄存器將被下一條指令更新。

5)本機方法堆棧——本機方法堆棧保存本機方法信息。對于每個線程,將創建一個單獨的本機方法堆棧。

3.執行引擎

分配給運行時數據區的字節碼將由執行引擎執行,執行引擎讀取字節碼并逐段執行。

1)解釋器——解釋器更快地解釋字節碼,但執行速度很慢。解釋器的缺點是當一個方法被多次調用時,每次都需要新的解釋。

2)JIT 編譯器——JIT 編譯器消除了解釋器的缺點。執行引擎將在解釋器的幫助下轉換字節碼,但當它發現重復的代碼時,它會使用 JIT 編譯器,編譯整個字節碼并將其更改為本地代碼。該原生代碼將直接用于重復的方法調用,從而提高系統的性能。

l 中間代碼生成器——生成中間代碼

l 代碼優化器——負責優化上面生成的中間代碼

l 目標代碼生成器——負責生成機器代碼或本機代碼

l 探查器——一個特殊的組件,負責查找熱點,即是否多次調用該方法。

3)垃圾收集器——收集和刪除未引用的對象。垃圾回收可以通過調用 System.gc() 來觸發,但不能保證執行。JVM 的垃圾收集收集創建的對象。

Java 本地接口(JNI)將與本機方法庫交互,并提供執行引擎所需的本機庫。本機方法庫是執行引擎所需的本機庫的集合。

分享到:
標簽:架構 JVM
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定