大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

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

JVM是什么

更新時間:2020-09-30 15:39:51 來源:動力節(jié)點 瀏覽2229次

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

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

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

為什么不同系統(tǒng)上的軟件無法安裝,這是因為操作系統(tǒng)底層的實現(xiàn)是不一樣的。對于 Windows 系統(tǒng)來說,exe 后綴的軟件代碼最終編譯成 Windows 系統(tǒng)能識別的機器碼。而 Mac OSX 系統(tǒng)來說,dmg 后綴的軟件代碼最終編譯成 Mac OSX 系統(tǒng)能識別的代碼。

image.png

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

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

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

image.png

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

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

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

image.png

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

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

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

提交申請后,顧問老師會電話與您溝通安排學習

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 成人免费黄色 | 亚洲视频在线精品 | 9久久免费国产精品特黄 | 久久精品国产一区二区小说 | 日本一区二区三区久久 | 国产精品亚洲精品影院 | 99re热精品视频国产免费 | 午夜私人影院粉色视频我要 | 久久久毛片 | 国产爱久久久精品 | 999精品视频在线观看 | 最新中文字幕一区 | 一区二区三区免费视频观看 | 牛牛影视在线观看片免费 | 免费不卡视频 | 亚洲第二区| 国产真实伦视频在线观看 | 国产小视频精品 | 五十路一区二区三区视频 | 欧美一区二区三区视频在线观看 | 国产精品四虎视频一区 | 综合婷婷丁香 | 中文字幕最新在线 | 尤物福利 | 久久精品成人免费看 | 久久99中文字幕 | 亚欧毛片基地国产毛片基地 | 99精品国产自产在线观看 | 色激情综合 | 久久久精品成人免费看 | 2021国产精品自产拍在线 | 亚洲精品久久片久久 | 精品福利国产 | 中文字幕一区日韩在线视频 | 成人毛片一区二区三区 | 国产精品久线观看视频 | 玖玖精品国产 | 国产精品午夜久久久久久99热 | 欧美精品一区二区在线观看 | 老子影院午夜精品欧美视频 | 国产精品乱码一区二区三区 |