×

Java虛擬機(jī)內(nèi)部體系結(jié)構(gòu)

  • 作者:新網(wǎng)
  • 來源:新網(wǎng)
  • 瀏覽:100
  • 2018-05-02 17:55:57

JVM(Java虛擬機(jī))是一個(gè)抽象機(jī)器。 它是一個(gè)提供可以執(zhí)行Java字節(jié)碼的運(yùn)行時(shí)環(huán)境的規(guī)范。JVM可用于許多硬件和軟件平臺(即JVM是平臺相關(guān)的)。

   JVM(Java虛擬機(jī))是一個(gè)抽象機(jī)器。 它是一個(gè)提供可以執(zhí)行Java字節(jié)碼的運(yùn)行時(shí)環(huán)境的規(guī)范。JVM可用于許多硬件和軟件平臺(即JVM是平臺相關(guān)的)。

t013163f6981b544ab7.jpg

<div>  什么是JVM?
  JVM(Java虛擬機(jī))是:
  指定Java虛擬機(jī)的工作的規(guī)范。 但實(shí)現(xiàn)提供程序是獨(dú)立的選擇算法。 其實(shí)現(xiàn)是由Sun和其他公司提供。
  它的實(shí)現(xiàn)被稱為JRE(Java運(yùn)行時(shí)環(huán)境)。
  運(yùn)行時(shí)實(shí)例只要在命令提示符上編寫java命令來運(yùn)行java類,就會創(chuàng)建JVM的實(shí)例。
  JVM(Java虛擬機(jī))能做什么?
  JVM執(zhí)行以下操作:
  加載代碼
  驗(yàn)證代碼
  執(zhí)行代碼
  提供運(yùn)行時(shí)環(huán)境
  JVM提供了以下定義:
  內(nèi)存區(qū)
  類文件格式
  寄存器集合
  垃圾收集堆
  致命錯(cuò)誤報(bào)告等
  JVM(Java虛擬機(jī))內(nèi)部體系結(jié)構(gòu)
  下面讓我們來了解JVM的內(nèi)部架構(gòu)。它包含類加載器,內(nèi)存區(qū)域,執(zhí)行引擎等。
  1)類加載器
  Classloader是JVM的一個(gè)子系統(tǒng),用于加載類文件。
  2)類(方法)區(qū)域
  類(方法)區(qū)域存儲每個(gè)類結(jié)構(gòu),例如運(yùn)行時(shí)常量池,字段和方法數(shù)據(jù),方法的代碼。
  3)堆
  它是分配對象的運(yùn)行時(shí)數(shù)據(jù)區(qū)。
  4)堆棧
  Java堆棧存儲幀。它保存局部變量和部分結(jié)果,并在方法調(diào)用和返回中起作用。
  每個(gè)線程都有一個(gè)私有JVM堆棧,同時(shí)創(chuàng)建線程。每次調(diào)用方法時(shí)都會創(chuàng)建一個(gè)新的框架。 框架在其方法調(diào)用完成時(shí)被銷毀。
  5)程序計(jì)數(shù)器寄存器
  PC(程序計(jì)數(shù)器)寄存器。 它包含當(dāng)前正在執(zhí)行的Java虛擬機(jī)指令的地址。
  6)本地方法堆棧
  它包含應(yīng)用程序中使用的所有本地方法。
  7)執(zhí)行引擎
  執(zhí)行引擎包含:
  虛擬處理器
  解釋器:讀取字節(jié)碼流,然后執(zhí)行指令。
即時(shí)(JIT)編譯器:它用于提高性能,JIT編譯的同時(shí)有類似字節(jié)代碼部分的功能,從而減少編譯所需的時(shí)間。編譯器是指從Java虛擬機(jī)(JVM)的指令集到特定CPU的指令集的轉(zhuǎn)換器。
以上就是小編總結(jié)的虛擬機(jī)內(nèi)部結(jié)構(gòu)的全部內(nèi)容。

免責(zé)聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn)自行上傳,本網(wǎng)站不擁有所有權(quán),也不承認(rèn)相關(guān)法律責(zé)任。如果您發(fā)現(xiàn)本社區(qū)中有涉嫌抄襲的內(nèi)容,請發(fā)送郵件至:operations@xinnet.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),本站將立刻刪除涉嫌侵權(quán)內(nèi)容。

免費(fèi)咨詢獲取折扣

Loading