????和其他編譯型以及解釋性語(yǔ)言相比碌宴,Java語(yǔ)言比較特殊杀狡,它的編譯過(guò)程比較特殊,并不會(huì)生成特定平臺(tái)的機(jī)器碼贰镣,而是生成一種與平臺(tái)無(wú)關(guān)的字節(jié)碼(也就是*.class文件)呜象。當(dāng)然,這種字節(jié)碼不是可執(zhí)行性的碑隆,必須使用Java解釋器來(lái)解釋執(zhí)行恭陡。
????因此可以認(rèn)為:Java語(yǔ)言既是編譯型語(yǔ)言,也是解釋性語(yǔ)言上煤。Java程序執(zhí)行過(guò)程必須經(jīng)過(guò)先編譯休玩,后解釋的步驟。
????Java語(yǔ)言里負(fù)責(zé)解釋執(zhí)行字節(jié)碼文件的是Java虛擬機(jī)楼入,即JVM(Java Virtual Machine)哥捕。所有平臺(tái)上的JVM向編譯器提供相同的編程接口,因此編譯后的Java字節(jié)碼就可以在該所有平臺(tái)上運(yùn)行嘉熊,做到平臺(tái)無(wú)關(guān)遥赚。
????與JVM經(jīng)常混淆的兩個(gè)概念是JDK和JRE:
????????1>JDK(Java SE Development Kit)即java標(biāo)準(zhǔn)開(kāi)發(fā)包阐肤,是提供給開(kāi)發(fā)人員的一套應(yīng)用程序開(kāi)發(fā)包凫佛。
????????2>JRE(Java Runtime Environment)java運(yùn)行時(shí)環(huán)境讲坎,它是運(yùn)行java程序的必須條件。
????JRE和JVM的關(guān)系:
????JRE包含了JVM愧薛。JVM是運(yùn)行Java程序的核心虛擬機(jī)晨炕,而運(yùn)行Java程序不僅需要核心虛擬機(jī),而運(yùn)行Java程序不僅需要核心虛擬機(jī)毫炉,還需要其他的 類(lèi)加載器瓮栗、字節(jié)碼校驗(yàn)器以及大量的基礎(chǔ)庫(kù)類(lèi)。JRE除了包含JVM之外瞄勾,還包含了運(yùn)行Java程序的其他環(huán)境支持费奸。
????一般而言,如果只是運(yùn)行Java程序进陡,只需要安裝JRE,無(wú)需安裝JDK愿阐。