JVM是什么?
JavaVirtualMachine(Java虛擬機),它是一個虛構出來的計算機,是通過在實際的計算機上仿真模擬各種計算機功能來實現的。Java虛擬機有自己完善的硬件架構,如處理器、堆棧、寄存器等,還具有相應的指令系統。JVM屏蔽了與具體操作系統平臺相關的信息,使得Java程序只需生成在Java虛擬機上運行的目標代碼(字節碼),就可以在多種平臺上不加修改地運行。Java虛擬機在執行字節碼時,實際上最終還是把字節碼解釋成具體平臺上的機器指令執行。
JVM(Java虛擬機)一種用于計算設備的規范,可用不同的方式(軟件或硬件)加以實現。編譯虛擬機的指令集與編譯微處理器的指令集非常類似。Java虛擬機包括一套字節碼指令集、一組寄存器、一個棧、一個垃圾回收堆和一個存儲方法域。
Java虛擬機(JVM)是可運行Java代碼的假想計算機。只要根據JVM規格描述將解釋器移植到特定的計算機上,就能保證經過編譯的任何Java代碼能夠在該系統上運行。
Java虛擬機是一個想象中的機器,在實際的計算機上通過軟件模擬來實現。Java虛擬機有自己想象中的硬件,如處理器、堆棧、寄存器等,還具有相應的指令系統。
Java虛擬機(JVM)概述
1.為什么要使用Java虛擬機
Java語言的一個非常重要的特點就是與平臺的無關性。而使用Java虛擬機是實現這一特點的關鍵。一般的高級語言如果要在不同的平臺上運行,至少需要編譯成不同的目標代碼。而引入Java語言虛擬機后,Java語言在不同平臺上運行時不需要重新編譯。Java語言使用模式Java虛擬機屏蔽了與具體平臺相關的信息,使得Java語言編譯程序只需生成在Java虛擬機上運行的目標代碼(字節碼),就可以在多種平臺上不加修改地運行。Java虛擬機在執行字節碼時,把字節碼解釋成具體平臺上的機器指令執行。
2.誰需要了解Java虛擬機
Java虛擬機是Java語言底層實現的基礎,對Java語言感興趣的人都應對Java虛擬機有個大概的了解。這有助于理解Java語言的一些性質,也有助于使用Java語言。對于要在特定平臺上實現Java虛擬機的軟件人員,Java語言的編譯器作者以及要用硬件芯片實現Java虛擬機的人來說,則必須深刻理解Java虛擬機的規范。另外,如果你想擴展Java語言,或是把其它語言編譯成Java語言的字節碼,你也需要深入地了解Java虛擬機。
3.Java虛擬機支持的數據類型
Java虛擬機支持Java語言的基本數據類型如下:
byte://1字節有符號整數的補碼
short://2字節有符號整數的補碼
int://4字節有符號整數的補碼
long://8字節有符號整數的補碼
float://4字節IEEE754單精度浮點數
double://8字節IEEE754雙精度浮點數
char://2字節無符號Unicode字符
幾乎所有的Java類型檢查都是在編譯時完成的。上面列出的原始數據類型的數據在Java執行時不需要用硬件標記。操作這些原始數據類型數據的字節碼(指令)本身就已經指出了操作數的數據類型,例如iadd、ladd、fadd和dadd指令都是把兩個數相加,其操作數類型別是int、long、float和double。虛擬機沒有給boolean(布爾)類型設置單獨的指令。boolean型的數據是由integer指令,包括integer返回來處理的。boolean型的數組則是用byte數組來處理的。虛擬機使用IEEE754格式的浮點數。不支持IEEE格式的較舊的計算機,在運行Java數值計算程序時,可能會非常慢。
Java虛擬機支持的其它數據類型包括:
object//對一個Javaobject(對象)的4字節引用
returnAddress//4字節,用于jsr/ret/jsr-w/ret-w指令
注:Java數組被當作object處理。
虛擬機的規范對于object內部的結構沒有任何特殊的要求。在Sun公司的實現中,對object的引用是一個句柄,其中包含一對指針:一個指針指向該object的方法表,另一個指向該object的數據。用Java虛擬機的字節碼表示的程序應該遵守類型規定。Java虛擬機的實現應拒絕執行違反了類型規定的字節碼程序。
Java虛擬機由于字節碼定義的限制似乎只能運行于32位地址空間的機器上。但是可以創建一個Java虛擬機,它自動地把字節碼轉換成64位的形式。從Java虛擬機支持的數據類型可以看出,Java對數據類型的內部格式進行了嚴格規定,這樣使得各種Java虛擬機的實現對數據的解釋是相同的,從而保證了Java的與平臺無關性和可移植性。
到此,關于“JVM的含義是什么”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注本站網站,小編會繼續努力為大家帶來更多實用的文章!
本文由 貴州做網站公司 整理發布,部分圖文來源于互聯網,如有侵權,請聯系我們刪除,謝謝!
c語言中正確的字符常量是用一對單引號將一個字符括起表示合法的字符常量。例如‘a’。數值包括整型、浮點型。整型可用十進制,八進制,十六進制。八進制前面要加0,后面...
2022年天津專場考試原定于3月19日舉行,受疫情影響確定延期,但目前延期后的考試時間推遲。 符合報名條件的考生,須在規定時間登錄招考資訊網(www.zha...
:喜歡聽,樂意看。指很受歡迎?!巴卣官Y料”喜聞樂見:[ xǐ wén lè jiàn ]詳細解釋1. 【解釋】:喜歡聽,樂意看。指很受歡迎。2. 【示例】:這是...
招商銀行車購易審核好不好過?如果想使用“車購易”貸款購車,首先必須滿足的條件是自己必須是招行的信用卡持卡用戶。如果長期使用招行信用卡且信用記錄良好的用戶,申請車購易的貸款是比較好審核的,但是如果購車人信用記錄出現過哪怕一筆逾期,審核肯定是無法通過的。另外借款人能夠提供能證明自己還款能力的證明,獲得高額度貸款的可能性會大幅度提升。招行車購易審批主要是看持卡人的個人信用,個人信...
微信錢包銀行儲蓄是什么?微信錢包銀行儲蓄是微信和工商銀行共同,儲蓄理財產品,存入資金相當于存入工商銀行,只和工行一家進行合作,選擇空間較小,但未來可能會有變化。產品的最長期限為3年,存款利率可達3.85%,100元起存,單筆不超過5萬。用戶可在微信開通銀行存款賬戶,銀行派發利息。從安全角度出發,工商銀行作為我國四大行之一,抗風險能力較高,加上該產品是存款類,理財風險是很低的。如何把手機零錢轉入綁定...
投資者在參與天通銀交易過程中,需要支付如下費用:點差、手續費、延期費、提貨費、交貨費等。點差:鉑金交易點差前一天結算價0.02% 白銀固定交易點差8元人民幣/千克。手續費:收取標準不超過成交金額的萬分之八,其中交易所收取萬分之三,其余部分由綜合會員收取。延期費:0.02%。提貨費:包括加工費、運輸費等,收取標準為每克14元人民幣;交貨費包括檢驗費、重鑄費等,收取標準為每克6元人民幣。提貨費、交貨費...