那曲檬骨新材料有限公司

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

JVM體系的三個主要子系統

汽車玩家 ? 來源:黑馬程序員 ? 作者:黑馬程序員 ? 2020-05-05 19:56 ? 次閱讀

快來查看JVM不同組件的概述以及非常有用的圖表。

這是最近在國外論壇看到一個很實用的介紹,分享給大家哦。

每個Java開發人員都知道字節碼將由JRE(Java運行時環境)執行。但是,許多人并不知道JRE是Java虛擬機(JVM)的實現,它可以分析字節碼,解釋代碼并執行它。作為開發人員,了解JVM的體系結構非常重要,因為它使我們能夠更高效地編寫代碼。在本文中,我們將更深入地了解Java中的JVM體系結構以及JVM的不同組件。

什么是JVM?

一個虛擬機是一個軟件實現物理機。Java是根據WORA(可在任何地方運行一次寫入)的概念開發的,該概念可在VM上運行。該編譯器編譯Java文件轉換成一個Java 的.class文件,則該.class文件輸入到JVM,它加載并執行類文件。下圖是JVM的體系結構圖。

JVM體系結構圖

JVM體系的三個主要子系統

JVM如何工作?

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

ClassLoader子系統

運行時數據區

執行引擎

1. ClassLoader子系統

Java的動態類加載功能由ClassLoader子系統處理。它加載,鏈接。并在運行時(而非編譯時)首次引用類時初始化類文件。

1.1加載

類將由此組件加載。BootStrap ClassLoader,擴展ClassLoader和Application ClassLoader是有助于實現該目標的三個ClassLoader。

BootStrap ClassLoader –負責從引導類路徑中加載類,僅用于rt.jar。最高優先級將給予此加載程序。

擴展ClassLoader –負責加載ext文件夾(jre \ lib)內的類。

Application ClassLoader –負責加載應用程序級別的類路徑,提到的環境變量路徑等。

上面的ClassLoader在加載類文件時將遵循委托層次算法

1.2連結

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

準備 –將為所有靜態變量分配內存并為其分配默認值。

解決 –將所有符號內存引用替換為“方法區域”中的原始引用。

1.3初始化

這是ClassLoading的最后階段;在此,所有靜態變量將被分配原始值,并且將執行靜態塊。

2.運行時數據區

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

方法區域–所有類級別的數據(包括靜態變量)都將存儲在此處。每個JVM只有一個方法區域,它是共享資源。

堆區–所有對象及其對應的實例變量和數組將存儲在此處。每個JVM還有一個堆區。由于“方法”和“堆”區域共享多個線程的內存,因此存儲的數據不是線程安全的。

堆棧區–對于每個線程,將創建一個單獨的運行時堆棧。對于每個方法調用,將在堆棧存儲器中創建一個條目,稱為堆棧幀。所有局部變量都將在堆棧存儲器中創建。堆棧區域不是共享資源,因此是線程安全的。堆棧框架分為三個子實體:局部變量數組 –與該方法有關,涉及多少局部變量,并且相應的值將存儲在此處。操作數堆棧 –如果需要執行任何中間操作,則操作數堆棧充當執行該操作的運行時工作區。幀數據 –與該方法相對應的所有符號都存儲在此處。在任何例外情況下,捕獲塊信息將保留在幀數據中。

PC寄存器 –每個線程將具有單獨的PC寄存器,以在執行指令后保存當前執行指令的地址,PC寄存器將用下一條指令進行更新。

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

3.執行引擎

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

解釋器–解釋器解釋字節碼的速度較快,但執行速度較慢。解釋器的缺點是,當多次調用一種方法時,每次都需要新的解釋。

JIT編譯器– JIT編譯器消除了解釋器的缺點。執行引擎將使用解釋器的幫助來轉換字節碼,但是當發現重復的代碼時,它將使用JIT編譯器,該編譯器將編譯整個字節碼并將其更改為本地代碼。此本地代碼將直接用于重復的方法調用,從而提高系統的性能。中間代碼生成器–產生中間代碼代碼優化器–負責優化上面生成的中間代碼目標代碼生成器–負責生成機器代碼或本機代碼Profiler–一個特殊的組件,負責查找熱點,即是否多次調用該方法。

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

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

本機方法庫:這是本機庫的集合,這是執行引擎所需的。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 編譯器
    +關注

    關注

    1

    文章

    1642

    瀏覽量

    49292
  • JVM
    JVM
    +關注

    關注

    0

    文章

    158

    瀏覽量

    12262
收藏 人收藏

    評論

    相關推薦

    簡述光刻工藝的三個主要步驟

    “ 光刻作為半導體中的關鍵工藝,其中包括3大步驟的工藝:涂膠、曝光、顯影。三個步驟有一異常,整個光刻工藝都需要返工處理,因此現場異常的處理顯得尤為關鍵”
    的頭像 發表于 10-22 13:52 ?838次閱讀

    plc控制系統由哪三個組成

    PLC控制系統,即可編程邏輯控制器系統,是一種廣泛應用于工業自動化領域的控制技術。它通過編程來實現對工業設備的控制,具有高度的靈活性和可靠性。一典型的PLC控制系統通常由以下
    的頭像 發表于 10-18 09:46 ?1534次閱讀

    自動發電控制系統具有三個基本功能

    自動發電控制系統(AGC)具有三個基本功能,這些功能在電力系統的運行和調度中發揮著重要作用。以下是這三個基本功能的詳細解析:
    的頭像 發表于 10-03 15:05 ?824次閱讀

    電磁頻譜管理系統通常由哪三個系統組成

    電磁頻譜管理系統是一套復雜的系統,它負責監控、管理和控制無線電頻譜的使用,以確保各種無線電服務的有效運行和互不干擾。 電磁頻譜管理系統通常由以下三個
    的頭像 發表于 09-20 17:55 ?661次閱讀

    基本理想電路元件的三個特征是什么

    基本理想電路元件是構成電路的基本單元,它們具有三個基本特征:電壓-電流關系、能量轉換和電路參數。以下是對這三個特征的分析: 電壓-電流關系 理想電路元件的電壓-電流關系是其最基本的特征之一。這種關系
    的頭像 發表于 08-25 09:38 ?1383次閱讀

    相交流電源是三個什么組成

    相交流電源是一種廣泛應用于工業和民用領域的電力系統,其主要三個交流電源組成,每個電源的相位相差120度。這種電源系統具有許多優點,如傳輸
    的頭像 發表于 08-23 15:10 ?1099次閱讀

    模數轉換器的三個主要技術指標是什么

    處理等。為了評估ADC的性能,我們需要關注其三個主要技術指標:分辨率、采樣率和精度。 1. 分辨率(Resolution) 分辨率是衡量ADC性能的一重要指標,它表示ADC能夠區分的最小信號變化。分辨率通常以位(bit)為單位
    的頭像 發表于 08-22 15:20 ?1226次閱讀

    對稱相電壓的特點是哪三個方面

    對稱相電壓是電力系統中常見的一種電壓形式,它具有三個相位,每個相位之間的相位差為120度。對稱相電壓在工業生產和日常生活中有著廣泛的應用,如電動機、變壓器、發電機等。本文將從
    的頭像 發表于 08-12 18:18 ?1811次閱讀

    聊聊JVM如何優化

    進行優化。 1.JVM內存模型 針對JAVA8的模型進行討論,JVM的內存模型主要分為幾個關鍵區域:堆、方法區、程序計數器、虛擬機棧和本地方法棧。堆內存進一步細分為年輕代、老年代,年輕代按其特性又分為E區,S1和S2區。關于內存
    的頭像 發表于 08-05 17:49 ?528次閱讀
    聊聊<b class='flag-5'>JVM</b>如何優化

    可調變阻器三個引腳怎么區分

    的區分對于正確使用可調變阻器至關重要。本文將介紹可調變阻器的三個引腳的區分方法。 一、可調變阻器的工作原理 在了解可調變阻器的三個引腳之前,我們首先需要了解其工作原理。可調變阻器主要由一
    的頭像 發表于 07-24 11:12 ?1496次閱讀

    adc濾波運放輸出電壓的三個作用

    在這篇文章中,我們將詳細探討ADC濾波運放輸出電壓的三個作用。ADC(Analog-to-Digital Converter,模擬-數字轉換器)是一種將模擬信號轉換為數字信號的電子設備。在許多電子系統
    的頭像 發表于 07-13 11:23 ?982次閱讀

    柔性制造系統由哪三個子系統組成

    的出現,極大地提高了生產效率和產品質量,降低了生產成本,縮短了產品開發周期,增強了企業的市場競爭力。FMS主要三個子系統組成:加工子系統、物料輸送子系統和信息
    的頭像 發表于 06-11 09:17 ?1894次閱讀

    微波測量的三個基本參量是什么

    微波測量是電子工程領域中的一重要分支,它涉及到對微波信號的頻率、幅度、相位等參數的測量。在微波測量中,有三個基本參量:頻率、幅度和相位。這三個參量是微波信號的基本特征,對于微波系統
    的頭像 發表于 05-28 14:46 ?1545次閱讀

    如何判斷極管的三個極性

    極管是電子電路中的基本元件之一,其性能的好壞直接影響到整個電路的性能。而判斷極管的三個極性(基極b、發射極e、集電極c)是電路分析和設計中不可或缺的一步。下面將詳細介紹判斷極管
    的頭像 發表于 05-21 15:26 ?7035次閱讀

    籬笆三個樁——記晶體極管的發明

    籬笆三個樁——記晶體極管的發明
    的頭像 發表于 05-12 08:14 ?879次閱讀
    一<b class='flag-5'>個</b>籬笆<b class='flag-5'>三個</b>樁——記晶體<b class='flag-5'>三</b>極管的發明
    大富豪棋牌游戏下载| 大发888登陆| 网上百家乐官网试玩网址| 百家乐官网玩法窍门| 大发888怎么玩| 单机百家乐官网破解方法| 齐齐哈尔市| sz新全讯网xb112| 百家乐路单破解软件| 稳赢百家乐官网的玩法技巧| 炉霍县| 大发888娱乐城维护| 百家乐桌小| 玩百家乐官网掉房| 百家乐官网娱乐天上人间| 博狗娱乐场| sz全讯网新2xb112| 皇冠百家乐赢钱皇冠| 恒丰百家乐官网的玩法技巧和规则 | 澳门百家乐真人娱乐场| 闲和庄百家乐官网赌场娱乐网规则 | 东港市| 金博士娱乐城备用网址| 威尼斯人娱乐城存取款| 百家乐赌博玩法技巧| 百家乐视频双扣| 百家乐官网路子分| 太阳城百家乐官网注册平台| 太子娱乐城官网| 澳门顶级赌场手机版| 威尼斯人娱乐城真假性| 百家乐打鱼秘籍| 百家乐庄家出千内幕| 汉百家乐官网春| 云鼎娱乐场| 大发888注册 大发888官网| 金满堂百家乐的玩法技巧和规则 | 百家乐扑克牌手机壳| 百家乐新庄| 澳门百家乐真人斗地主| 娱乐城百家乐技巧|