1. gzyueqian
      13352868059

      Java培訓(xùn):Java中JIT和JVM的區(qū)別

      更新時間: 2023-03-12 09:15:06來源: 粵嵌教育瀏覽量:8884


      Java虛擬機(jī)(JVM)用于Java運(yùn)行時環(huán)境(JRE)。最初的JVM被設(shè)想為字節(jié)碼解釋器。由于性能問題,這可能有點(diǎn)出人意料。許多現(xiàn)代語言都要編譯成CPU專用的可執(zhí)行代碼。然而,JVM執(zhí)行Java程序這一事實(shí)有助于解決與基于web的應(yīng)用程序相關(guān)的主要問題。想對JVM有更多了解,建議考慮報名參加Java培訓(xùn),有明確的學(xué)習(xí)路線和全面系統(tǒng)的課程,能獲得較快提升。

       

      JVM執(zhí)行Java程序這一事實(shí)也有助于使其穩(wěn)定。由于JVM負(fù)責(zé),程序的執(zhí)行由它控制。因此,JVM可以構(gòu)建一個稱為沙盒的有限執(zhí)行區(qū)域,其中包含軟件,從而防止系統(tǒng)獲得無限訪問。Java語言中存在的一些限制也改善了保護(hù)。JavaJVM架構(gòu)包括類加載器、執(zhí)行引擎、內(nèi)存字段等。

       

      為了理解差異,讓我們通過說明JVM的工作來深入了解組件。

       

      類加載器:類加載器的目的是加載類文件。它有助于完成三個主要功能:加載、初始化和鏈接。

       

      JVM語言堆棧:Java內(nèi)存存儲本地變量和計算的部分結(jié)果。每個線程都有自己的JVM堆棧,在創(chuàng)建線程時創(chuàng)建。調(diào)用該方法時,將創(chuàng)建一個新框架,然后將其刪除。在java培訓(xùn)中,也有關(guān)于JVM內(nèi)存的學(xué)習(xí),學(xué)好這部分的知識,可以避免在工作中出現(xiàn)的很多問題。

       

      方法區(qū):JVM方法區(qū)專門存儲Java應(yīng)用程序的元數(shù)據(jù)和代碼隱藏文件。

       

      PC寄存器:當(dāng)前正在執(zhí)行的Java虛擬機(jī)指令地址由PC寄存器保存。Java中的每個線程都有自己獨(dú)立的PC寄存器。

       

      堆:堆中保存了所有對象、數(shù)組和實(shí)例變量。此內(nèi)存在多個線程之間共享。

       

      執(zhí)行引擎:它是一種用于測試軟件、硬件或完整系統(tǒng)的軟件形式。測試執(zhí)行引擎從不攜帶任何有關(guān)被測試產(chǎn)品的信息。

       

      本地方法庫:作為執(zhí)行引擎的本地方法庫需要本地庫(CC++),而作為編程框架的本地方法接口是本地方法接口。這使得在JVM中運(yùn)行的Java代碼能夠調(diào)用庫和本機(jī)應(yīng)用程序。此外,本機(jī)方法堆棧根據(jù)本機(jī)庫具有本機(jī)代碼命令。它將存儲分配給本機(jī)堆或使用任何堆棧類型。參加java培訓(xùn),可以學(xué)到全方位的java知識和技能,而且還有實(shí)戰(zhàn)項(xiàng)目操作訓(xùn)練,積累項(xiàng)目經(jīng)驗(yàn),以便快速上崗。




      實(shí)時(JIT)編譯器

      雖然Java是作為一種解釋語言開發(fā)的,但為了提高性能,Java并沒有阻止字節(jié)碼編譯為本地代碼。因此,在Java首次發(fā)布后不久,HotSpotJVM就發(fā)布了。HotSpot中包含一個即時(JIT)字節(jié)碼編譯器。實(shí)時(JIT)編譯器是JVM的一部分,在逐件需求的基礎(chǔ)上,字節(jié)碼的選定部分被實(shí)時編譯為可執(zhí)行代碼。也就是說,正如在執(zhí)行期間所必需的,JIT編譯器編譯代碼。此外,并非所有字節(jié)碼序列都被編譯,只有那些將從編譯中受益的字節(jié)碼序列才被編譯。然而,及時的方法仍然大大提高了效率。即使動態(tài)編譯應(yīng)用于字節(jié)碼,可移植性和安全性功能仍然存在,因?yàn)?/span>JVM仍然控制執(zhí)行環(huán)境。

       

      為了理解差異,讓我們通過說明JIT的工作方式來深入了解組件。

       

      通過解釋字節(jié)碼,JVM的標(biāo)準(zhǔn)實(shí)現(xiàn)降低了程序的執(zhí)行速度。JIT編譯器在運(yùn)行時與JVM交互以提高性能,并將適當(dāng)?shù)淖止?jié)碼序列編譯成本機(jī)代碼。

       

      硬件正在解釋代碼,而不是JVMJava虛擬機(jī))。這可以提高執(zhí)行速度的性能。這可以在每個文件、每個函數(shù)或任何任意代碼片段上完成;代碼通常在接近執(zhí)行時進(jìn)行編譯(因此稱為“及時”),然后緩存并在以后重用,而無需重新編譯。它執(zhí)行許多優(yōu)化:數(shù)據(jù)分析、從堆棧操作轉(zhuǎn)換為注冊表操作、通過注冊表分配減少內(nèi)存訪問、消除常見子表達(dá)式。若想要更加系統(tǒng)更加詳細(xì)的學(xué)習(xí) JVM 知識,建議參加java培訓(xùn),有經(jīng)驗(yàn)豐富的專業(yè)講師面授指導(dǎo)教學(xué),能夠幫你更全面了解JVM。


      免費(fèi)預(yù)約試聽課

      亚洲另类欧美综合久久图片区_亚洲中文字幕日产无码2020_欧美日本一区二区三区桃色视频_亚洲AⅤ天堂一区二区三区

      
      

      1. 日韩午夜午码高清福利片 | 亚洲最大的欧美日韩在线 | 日韩欧美有亚洲日韩中文字幕在线 | 欧美精品一级高清手机在线 | 日韩午夜福利视频 | 五月天一区二区精品 |