2 回答

TA貢獻(xiàn)1851條經(jīng)驗(yàn) 獲得超3個(gè)贊
1.JRE就已經(jīng)包含了JVM,所以有人說(shuō)沒(méi)有JVM,有JRE就可以,這個(gè)說(shuō)法非常錯(cuò)。你可以把你的JRE里的JVM去掉,看能不能運(yùn)行JAVA程序。
編程就是寫(xiě)一個(gè)JAVA源程序,這個(gè)源程序首先必須有開(kāi)發(fā)工具里面的javac.exe也就是編譯器來(lái)把這個(gè)源程序翻譯成后綴為.class的文件,這個(gè).class文件的專業(yè)名詞就是字節(jié)碼文件,然后字節(jié)碼文件才能在JVM上運(yùn)行。你可以把JVM理解成酷狗音樂(lè)播放器,字節(jié)碼文件理解成歌曲文件。歌曲文件只有在播放器上才能播放。
2.JVM和你說(shuō)的普通虛擬機(jī)是不同的。我和你說(shuō)下JVM,JRE,JDK的關(guān)系:
JVM可以說(shuō)是運(yùn)行環(huán)境,你也可以理解成電腦硬件
JRE在JVM之上多加了核心類庫(kù),這些核心類庫(kù)就相當(dāng)于操作系統(tǒng)。這樣說(shuō)JRE就包括了硬件和軟件。
JDK在JRE基礎(chǔ)之上就包含了開(kāi)發(fā)工具,有了開(kāi)發(fā)工具才能做新的程序。
3.windows沒(méi)有自帶的JVM,JRE,和JDK這些開(kāi)發(fā)環(huán)境。如果要開(kāi)發(fā)新的程序,你只需要安裝一個(gè)JDK就可以了,他就包含了JVM和JRE

TA貢獻(xiàn)1785條經(jīng)驗(yàn) 獲得超4個(gè)贊
首先,java虛擬機(jī)和你理解的虛擬機(jī)不同。我們都知道java的跨平臺(tái)性高,那么高在哪里呢。我們把java和c做個(gè)比較。首先c語(yǔ)言通過(guò)編譯器、匯編器翻譯出本電腦可以運(yùn)行的機(jī)器代碼。由于電腦有很多類型,就會(huì)有不同的機(jī)器代碼格式,在你電腦上生成的代碼在別的型號(hào)的電腦上就不能運(yùn)行或是會(huì)出現(xiàn)錯(cuò)誤。所以跨平臺(tái)性低。
而java在此基礎(chǔ)上進(jìn)行了改進(jìn),先將源碼翻譯成一種叫做字節(jié)碼的東西(類似于編譯器中的中間代碼),然后通過(guò)網(wǎng)絡(luò)傳輸?shù)揭\(yùn)行機(jī)器上,你根據(jù)自己的電腦型號(hào)下載了相應(yīng)的jre,接受字節(jié)碼后就會(huì)通過(guò)jre中的jvm翻譯成這臺(tái)電腦可以運(yùn)行的機(jī)器碼。這也就是我們所說(shuō)的,一次編寫(xiě),全部運(yùn)行。當(dāng)然,他也有缺點(diǎn),電腦型號(hào)越多,就會(huì)有越多種jre,需要很多人來(lái)進(jìn)行維護(hù),花費(fèi)很大。
另外,windows系統(tǒng)不帶jre,不能運(yùn)行java程序,需要自己進(jìn)行下載。
添加回答
舉報(bào)