黄色网址大全免费-黄色网址你懂得-黄色网址你懂的-黄色网址有那些-免费超爽视频-免费大片黄国产在线观看

專注Java教育14年 全國(guó)咨詢/投訴熱線:400-8080-105
動(dòng)力節(jié)點(diǎn)LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁(yè) hot資訊 JVM是什么

JVM是什么

更新時(shí)間:2020-09-30 15:39:51 來(lái)源:動(dòng)力節(jié)點(diǎn) 瀏覽2124次

JVM是我們學(xué)習(xí)Java接觸最多的名詞之一,那么JVM到底是什么呢?許多小伙伴對(duì)此都是一知半解,沒(méi)有從根本上弄懂JVM是什么

想知道jvm是什么?那我們先來(lái)看看JVM的定義:JVM是Java Virtual Machine(Java虛擬機(jī))的縮寫,JVM是一種用于計(jì)算設(shè)備的規(guī)范,它是一個(gè)虛構(gòu)出來(lái)的計(jì)算機(jī),是通過(guò)在實(shí)際的計(jì)算機(jī)上仿真模擬各種計(jì)算機(jī)功能來(lái)實(shí)現(xiàn)的。

我們都知道在 Windows 系統(tǒng)上一個(gè)軟件包裝包是 exe 后綴的,而這個(gè)軟件包在蘋果的 Mac OSX 系統(tǒng)上是無(wú)法安裝的。類似地,Mac OSX 系統(tǒng)上軟件安裝包則是 dmg 后綴,同樣無(wú)法在 Windows 系統(tǒng)上安裝。

為什么不同系統(tǒng)上的軟件無(wú)法安裝,這是因?yàn)椴僮飨到y(tǒng)底層的實(shí)現(xiàn)是不一樣的。對(duì)于 Windows 系統(tǒng)來(lái)說(shuō),exe 后綴的軟件代碼最終編譯成 Windows 系統(tǒng)能識(shí)別的機(jī)器碼。而 Mac OSX 系統(tǒng)來(lái)說(shuō),dmg 后綴的軟件代碼最終編譯成 Mac OSX 系統(tǒng)能識(shí)別的代碼。

image.png

系統(tǒng)軟件無(wú)法通用是一個(gè)常見(jiàn)的問(wèn)題。但使用過(guò) Java 的同學(xué)都知道,Java 代碼可以在服務(wù)端(Linux 系統(tǒng))運(yùn)行,也可以在 Windows 系統(tǒng)運(yùn)行,但我們并沒(méi)有生成多份不同的代碼。所以 Java 語(yǔ)言是如何做到的呢?

與其他語(yǔ)言不同,Java 語(yǔ)言并不直接將代碼編譯成與系統(tǒng)有關(guān)的機(jī)器碼,而是編譯成一種特定的語(yǔ)言規(guī)范,這種語(yǔ)言規(guī)范我們稱之為字節(jié)碼。無(wú)論 Java 程序要在 Windows 系統(tǒng),還是 Mac OSX 系統(tǒng),抑或是 Linux 系統(tǒng),它首先都得編譯成字節(jié)碼文件,之后才能運(yùn)行。

但即使編譯成字節(jié)碼文件了,各個(gè)系統(tǒng)還是無(wú)法明白字節(jié)碼文件的內(nèi)容,這時(shí)候就需要 Java 虛擬機(jī)的幫助了。Java 虛擬機(jī)會(huì)解析字節(jié)碼文件的內(nèi)容,并將其翻譯為各操作系統(tǒng)能理解的機(jī)器碼。

image.png

簡(jiǎn)單地說(shuō),對(duì)于同樣一份 Java 源碼文件,我們編譯成字節(jié)碼之后,無(wú)論是 Linux 系統(tǒng)還是 Windows 系統(tǒng)都不認(rèn)識(shí)。這時(shí)候 Java 虛擬機(jī)就是一個(gè)翻譯官,在 Linux 系統(tǒng)上翻譯成 Linux 機(jī)器碼給 Linux 系統(tǒng)聽(tīng),在 Windows 系統(tǒng)上翻譯成 Windows 機(jī)器碼給 Windows 系統(tǒng)聽(tīng)。這樣一來(lái),Java 就實(shí)現(xiàn)了「Write Once,Run Anywhere」的偉大愿景了。

在 Java 虛擬機(jī)還沒(méi)出現(xiàn)之前,為了支持軟件在不同系統(tǒng)上運(yùn)行,我們必須在多個(gè)平臺(tái)寫多份代碼,分別對(duì)應(yīng)特定的系統(tǒng)。但 Java 虛擬機(jī)出現(xiàn)之后,你只需要按照特定規(guī)范編譯書寫,編譯器編譯成字節(jié)碼文件后,虛擬機(jī)會(huì)幫你將字節(jié)碼生成對(duì)應(yīng)的 Windows Code 和 Mac Code。本質(zhì)上最終還是會(huì)生成 Windows Code 和 Mac Code 兩份機(jī)器代碼,但對(duì)于開(kāi)發(fā)人員來(lái)說(shuō),卻只需要寫一次代碼了。Java 虛擬機(jī)幫開(kāi)發(fā)人員承擔(dān)了重復(fù)的工作,讓開(kāi)發(fā)效率更高了。

很多初學(xué)者關(guān)于 Java 虛擬機(jī)有一個(gè)誤區(qū),他們會(huì)覺(jué)得 Java 虛擬機(jī)只能運(yùn)行 Java 代碼。但實(shí)際上 Java 虛擬機(jī)運(yùn)行的是字節(jié)碼文件。換句話說(shuō),如果你用 php 語(yǔ)言寫一段代碼,并自己用特定編譯器能生成符合字節(jié)碼規(guī)范的字節(jié)碼文件,那么 Java 虛擬機(jī)也是可以運(yùn)行的。

image.png

所以雖然名字是 Java 虛擬機(jī),但 Java 虛擬機(jī)與 Java 語(yǔ)言沒(méi)有直接關(guān)系,它只按照 Java 虛擬機(jī)規(guī)范去讀取 Class 文件,并按照規(guī)定去解析、執(zhí)行字節(jié)碼指令,僅此而已。

當(dāng)然如果你夠優(yōu)秀,你完全可以寫一個(gè)編譯器,將 PHP 語(yǔ)言代碼編譯成符合 Java 虛擬機(jī)規(guī)范的字節(jié)碼文件,那么 Java 虛擬機(jī)也是可以執(zhí)行的。準(zhǔn)確地說(shuō),Java 虛擬機(jī)與字節(jié)碼文件(Class文件)綁定。

看完了本文,我們或多或少對(duì)JVM應(yīng)該有了自己的認(rèn)知,到底jvm是什么?其實(shí) Java 虛擬機(jī)就是一個(gè)字節(jié)碼翻譯器,它將字節(jié)碼文件翻譯成各個(gè)系統(tǒng)對(duì)應(yīng)的機(jī)器碼,確保字節(jié)碼文件能在各個(gè)系統(tǒng)正確運(yùn)行,僅此而已。對(duì)于JVM更加深入的講解在本站的Java基礎(chǔ)視頻教程中有著完美的體系,小伙伴們還不趕快行動(dòng),下載視頻教程,開(kāi)始學(xué)習(xí)Java基礎(chǔ)知識(shí)。

提交申請(qǐng)后,顧問(wèn)老師會(huì)電話與您溝通安排學(xué)習(xí)

  • 全國(guó)校區(qū) 2025-05-15 搶座中
  • 全國(guó)校區(qū) 2025-06-05 搶座中
  • 全國(guó)校區(qū) 2025-06-26 搶座中
免費(fèi)課程推薦 >>
技術(shù)文檔推薦 >>
主站蜘蛛池模板: 五月天综合激情 | 91精品一区二区三区在线 | 狼人香蕉网 | 在线观看欧洲成人免费视频 | 亚洲天堂免费在线视频 | 波多野结衣久久国产精品 | 久久精品国产无限资源 | 欧美国产日韩久久久 | 激情综合五月 | 天天干天天操天天爽 | 最近最新中文字幕免费高清1 | 性福利影院 | 成人午夜小视频 | 久久精品94精品久久精品动漫 | 国产成人亚洲影视在线 | 国产一级毛片免 | 99精品在线观看 | 美女被羞羞网站 | 天天射日日干 | 日韩国产精品欧美一区二区 | 亚洲精品天堂 | 青草网在线观看 | 日韩精品第一页 | 久久女同互慰一区二区三区 | 国产国语一级a毛片高清视频 | 美女视频黄的全免费网站 | www.妞干网| 欧美大片va欧美在线播放 | 香港三级日本三人妇孕妇 | 制服丝袜在线播放 | 亚洲伦理在线 | 久久精品国产大片免费观看 | 国产99re | 一级做一级爱a做片性视频视频 | 老妇激情毛片免费 | 欧美日韩激情一区二区三区 | 好男人社区影院 | 一级做α爱过程免费视频 | 另类异族videosex太狠了 | 国模啪啪一区二区三区 | 欧美精品专区免费观看 |