棲息地

          家園

          JVM,JRE,JDK到底是個(gè)什么樣的關(guān)系(轉(zhuǎn))

          JVM JRE JDK,這些東西到底是什么?

            我們?cè)诎惭b好JDK后就可以想象成我們已經(jīng)買(mǎi)了一臺(tái)安裝好軟件的新的電腦。

            JVM : Java Virtual Machine(Java虛擬機(jī)) 。所謂“虛擬機(jī)”顧名思義就是模擬出來(lái)的東西。就像是我們?cè)谟秒娔X看電視,但是電腦里并沒(méi)有像電視機(jī)里面一樣的硬件支持,但是我們?nèi)匀豢梢詮碾娔X里接受電視臺(tái)的節(jié)目。那是因?yàn)槲覀兙帉?xiě)了一個(gè)可以模擬電視機(jī)硬件工作的軟件運(yùn)行在電腦的平臺(tái)上面的原因。同樣JVM就是模擬了電腦的硬件,它同樣有著像CPU一樣可以執(zhí)行代碼的功能。它的實(shí)現(xiàn)具體有:指令集 寄存器組 類文件格式 棧 垃圾收集堆 內(nèi)存區(qū)。可以把它理解成是專門(mén)用來(lái)執(zhí)行Java程序的一臺(tái)機(jī)器。也就是說(shuō)JVM提供了Java執(zhí)行的硬件平臺(tái)。JVM上執(zhí)行的代碼都存放在 .CLASS 文件中。JVM只執(zhí)行字節(jié)碼文件。

            JRE : Java Runtime Environment(Java運(yùn)行環(huán)境)。就是可以運(yùn)行Java程序的地方。就像是我們要在電腦上運(yùn)行一個(gè)視頻軟件的時(shí)候必須在Windos或者是Linux等操作系統(tǒng)上一樣。那我們就可以把它看做是一個(gè)操作系統(tǒng)。也就是說(shuō)JRE提供了Java執(zhí)行的軟件平臺(tái)。在運(yùn)行Java的過(guò)程中除了需要有JVM執(zhí)行Java代碼這個(gè)動(dòng)作外,還需要Java API(Application Programming Interface,應(yīng)用編程接口)說(shuō)簡(jiǎn)單的就是“類庫(kù)”。Java程序在運(yùn)行中沒(méi)有這些API是不行的,所以JRE包含JVM。

            JDK : Java Development ToolKit(Java開(kāi)發(fā)工具包)。我們有了硬件和軟件兩個(gè)平臺(tái)后就可以做我們自己想做的事情了。JDK就是我們用來(lái)做事情的工具,它包括JRE還有其他工具。我們所說(shuō)版本的不同,也就是說(shuō)它里面的工具有差異。就像是你不同的工具箱里放著不同的工具一樣。舉個(gè)例子:最常用的一個(gè)就是javac,它是把.java的文件翻譯成.class文件的工具。然后讓JVM來(lái)執(zhí)行.class文件中的字節(jié)碼。(就像電腦的CPU只認(rèn)識(shí)0或1的道理)

            如果一臺(tái)計(jì)算機(jī)的需求只是運(yùn)行Java程序,而不是去編寫(xiě)Java程序的時(shí)候,它只需要安裝JRE就可以了。現(xiàn)在大家知道JVM JRE JDK,這些東西到底是什么了吧。

          posted on 2010-03-25 21:13 drecry 閱讀(327) 評(píng)論(0)  編輯  收藏


          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 冕宁县| 阿坝县| 西藏| 南安市| 筠连县| 高雄市| 那曲县| 邹平县| 西盟| 郓城县| 佛坪县| 江西省| 蓝山县| 安塞县| 弋阳县| 霍州市| 鹿邑县| 凌云县| 乐东| 霍林郭勒市| 嘉峪关市| 涿鹿县| 建德市| 昆山市| 汽车| 山丹县| 射洪县| 吴忠市| 无为县| 淮南市| 德兴市| 西乌| 景洪市| 金湖县| 侯马市| 南乐县| 清流县| 开平市| 阿尔山市| 米易县| 长岭县|