×

簡單分享 java 虛擬機學(xué)習(xí)

  • 作者:新網(wǎng)
  • 來源:新網(wǎng)
  • 瀏覽:100
  • 2018-04-28 17:07:18

什么是java虛擬機?Java虛擬機(Java Virtual Machine簡稱JVM)是運行所有Java程序的抽象計算機,是Java語言的運行環(huán)境它是Java最具吸引力的特性之一。

  Cg-4WlJl0ZuIFw26AADH-gv3xAkAAMsdAKHHycAAMgS098.jpg

<div>  
  什么是java虛擬機?Java虛擬機(Java Virtual Machine簡稱JVM)是運行所有Java程序的抽象計算機,是Java語言的運行環(huán)境它是Java最具吸引力的特性之一。
  Java虛擬機的特點
  Java語言的一個非常重要的特點就是與平臺的無關(guān)性。而使用Java虛擬機是實現(xiàn)這一特點的關(guān)鍵。一般的高級語言如果要在不同的平臺上運行,至少需要編譯成不同的目標(biāo)代碼。而引入Java語言虛擬機后,Java語言在不同平臺上運行時不需要重新編譯。Java語言使用模式Java虛擬機屏蔽了與具體平臺相關(guān)的信息,使得Java語言編譯程序只需生成在Java虛擬機上運行的目標(biāo)代碼(字節(jié)碼),就可以在多種平臺上不加修改地運行。Java虛擬機在執(zhí)行字節(jié)碼時,把字節(jié)碼解釋成具體平臺上的機器指令執(zhí)行。
  Java虛擬機的使用主體
  Java虛擬機是Java語言底層實現(xiàn)的基礎(chǔ),對Java語言感興趣的人都應(yīng)對Java虛擬機有個大概的了解。這有助于理解Java語言的一些性質(zhì),也有助于使用Java語言。對于要在特定平臺上實現(xiàn)Java虛擬機的軟件人員,Java語言的編譯器作者以及要用硬件芯片實現(xiàn)Java虛擬機的人來說,則必須深刻理解Java虛擬機的規(guī)范。另外,如果你想擴展Java語言,或是把其它語言編譯成Java語言的字節(jié)碼,你也需要深入地了解Java虛擬機
  Java虛擬機體系結(jié)構(gòu)
  Java虛擬機由五個部分組成:一組指令集、一組寄存器、一個棧、一個無用單元收集堆(Garbage-collected-heap)、一個方法區(qū)域。這五部分是Java虛擬機的邏輯成份,不依賴任何實現(xiàn)技術(shù)或組織方式,但它們的功能必須在真實機器上以某種方式實現(xiàn)
  1.Java指令集
  Java虛擬機支持大約248個字節(jié)碼。每個字節(jié)碼執(zhí)行一種基本的CPU運算,例如,把一個整數(shù)加到寄存器,子程序轉(zhuǎn)移等。Java指令集相當(dāng)于Java程序的匯編語言。
  2寄存器
  Java虛擬機的寄存器用于保存機器的運行狀態(tài),與微處理器中的某些專用寄存器類似。
  Java虛擬機的寄存器有四種:
  pc:Java程序計數(shù)器。
  optop:指向操作數(shù)棧頂端的指針。
  frame:指向當(dāng)前執(zhí)行方法的執(zhí)行環(huán)境的指針。
  vars:指向當(dāng)前執(zhí)行方法的局部變量區(qū)第一個變量的指針。
  4.無用單元收集堆
  Java的堆是一個運行時數(shù)據(jù)區(qū),類的實例(對象)從中分配空間。Java語言具有無用單元收集能力,它不給程序員顯式釋放對象的能力。Java不規(guī)定具體使用的無用單元收集算法,可以根據(jù)系統(tǒng)的需求使用各種各樣的算法。
  5.方法區(qū)
  方法區(qū)與傳統(tǒng)語言中的編譯后代碼或是Unix進程中的正文段類似。它保存方法代碼(編譯后的java代碼)和符號表。在當(dāng)前的Java實現(xiàn)中,方法代碼不包括在無用單元收集堆中,但計劃在將來的版本中實現(xiàn)。每個類文件包含了一個java類或一個Java界面的編譯后的代碼??梢哉f類文件是Java語言的執(zhí)行代碼文件。為了保證類文件的平臺無關(guān)性,Java虛擬機規(guī)范中對類文件的格式也作了詳細的說明。其具體細節(jié)請參考Sun公司的Java虛擬機規(guī)范。
  java虛擬機不是三言兩語可以介紹完的,這里介紹了一些虛擬機的特性,希望能夠相互交流促進。
 

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

免費咨詢獲取折扣

Loading