2 回答

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

TA貢獻1785條經驗 獲得超4個贊
首先,java虛擬機和你理解的虛擬機不同。我們都知道java的跨平臺性高,那么高在哪里呢。我們把java和c做個比較。首先c語言通過編譯器、匯編器翻譯出本電腦可以運行的機器代碼。由于電腦有很多類型,就會有不同的機器代碼格式,在你電腦上生成的代碼在別的型號的電腦上就不能運行或是會出現錯誤。所以跨平臺性低。
而java在此基礎上進行了改進,先將源碼翻譯成一種叫做字節碼的東西(類似于編譯器中的中間代碼),然后通過網絡傳輸到要運行機器上,你根據自己的電腦型號下載了相應的jre,接受字節碼后就會通過jre中的jvm翻譯成這臺電腦可以運行的機器碼。這也就是我們所說的,一次編寫,全部運行。當然,他也有缺點,電腦型號越多,就會有越多種jre,需要很多人來進行維護,花費很大。
另外,windows系統不帶jre,不能運行java程序,需要自己進行下載。
添加回答
舉報