JVM 架構解讀,jvm架構解讀

來源:互聯網
上載者:User

JVM 架構解讀,jvm架構解讀

每個Java開發人員都知道位元組碼由JRE(Java運行時環境)執行。但許多人不知道JRE是Java Virtual Machine(JVM)的實現,它分析位元組碼,解釋代碼並執行它。作為開發人員,我們應該知道JVM的架構是非常重要的,因為它使我們能夠更有效地編寫代碼。在本文中,我們將更深入地瞭解Java中的JVM架構和JVM的不同組件。

什麼是JVM?

Virtual Machine是物理機器的軟體實現。Java是用在VM上啟動並執行WORA(Write Once Run Anywhere)概念而開發的。編譯器將Java檔案編譯為Java .class檔案,然後將.class檔案輸入到JVM中,JVM會載入並執行類檔案。下面是JVM的架構圖。

JVM如何工作?

如上面的架構圖所示,JVM分為三個主要子系統:

1.類載入器子系統

Java的動態類載入功能由類載入器子系統處理。它在運行時,而不是編譯時間首次引用類的時候載入、連結、並初始化類檔案。

1.1載入

類將通過此組件載入。Boot Strap Class Loader,Extension Class Loader和Application Class Loader是有助於實現的三個類載入器。

上面的類記載器在載入類檔案時遵循Delegation Hierarchy 演算法。

1.2連結1.3初始化

這是類載入的最後階段,這裡所有的靜態變數都將被賦予原始值,並執行靜態塊。

2.運行時資料區

運行時資料區分為5個主要組件:

方法區——所有的類層級資料將儲存在這裡,包括靜態變數。每個JVM只有一個方法區,並且它是一個共用資源。

堆地區——所有對象及其對應的執行個體變數和數組將儲存在這裡。每個JVM也有一個堆地區。由於方法和堆地區共用多個線程的記憶體,因此所儲存的資料非安全執行緒。

堆棧區——對於每個線程,將建立一個單獨的運行時棧。對於每個方法調用,將在堆棧儲存空間中產生一個條目,稱為堆疊框架。所有局部變數將在堆棧記憶體中建立。堆棧地區是安全執行緒的,因為它不是共用資源。堆疊框架分為三個子項目:

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

本地方法堆棧——本地方法堆棧儲存本地方法資訊。對於每個線程,將建立一個單獨的本地方法堆棧。

3.執行引擎

分配給運行時資料區的位元組碼將由執行引擎執行。執行引擎讀取位元組碼並逐個執行它。

解譯器——解譯器解釋位元組碼較快,但執行慢。解譯器的缺點是當一個方法被多次調用時,每次都需要新的解析。

JIT編譯器——JIT編譯器消除瞭解釋器的缺點。執行引擎將在轉換位元組碼時使用解譯器的協助,但是當它發現重複的代碼時,它使用JIT編譯器,編譯器會編譯整個位元組碼並將其更改為本地代碼。這個本地代碼將直接用於重複的方法調用,從而提高系統效能。

垃圾收集器:收集和刪除未引用的對象。可以通過調用“System.gc()”觸發垃圾收集器,但不能保證執行。JVM的記憶體回收收集建立的對象。

Java本機介面(JNI):JNI將與本地方法庫進行互動,並提供執行引擎所需的本地庫。

本地方法庫:它是執行引擎所需的本地庫的集合。

學習Java的同學注意了!!! 
學習過程中遇到什麼問題或者想擷取學習資源的話,歡迎加入Java學習交流群,群號碼:454297367 我們一起學Java!

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.