最近更新|軟件分類|單機游戲|軟件專題|手機版|軟件發(fā)布 jre和jdk的區(qū)別 JDK/JRE/JVM的區(qū)別與聯(lián)系
首頁>編程開發(fā)>jre和jdk的區(qū)別 JDK/JRE/JVM的區(qū)別與聯(lián)系

jre和jdk的區(qū)別 JDK/JRE/JVM的區(qū)別與聯(lián)系

我要評論2015/11/24 11:22:19來源:9553編輯:

很多朋友可能已經(jīng)使用JAVA開發(fā)很久了,可是一直搞不清jre和jdk的區(qū)別,對于JDK,JRE,JVM這三者的聯(lián)系與區(qū)別,一直都是模模糊糊的。今天特發(fā)此文,來整理下三者的關(guān)系。

JDK : Java Development ToolKit(JAVA開發(fā)工具包)。JDK是整個JAVA的核心,包括了Java運行環(huán)境(Java Runtime Envirnment),一堆Java工具(javac/java/jdb等)和Java基礎(chǔ)的類庫(即Java API 包括rt.jar)。

最主流的JDK是Sun公司發(fā)布的JDK,除了Sun之外,還有很多公司和組織都開發(fā)了屬于自己的JDK,例如國外IBM公司開發(fā)了屬于自己的JDK,國內(nèi)淘寶也開發(fā)了屬于自己的JDK,各個組織開發(fā)自己的JDK都是為了在某些方面得到一些提高,以適應(yīng)自己的需求,比如IBM的JDK據(jù)說運行效率就比SUN的JDK高的多。但不管怎么說,我們還是需要先把基礎(chǔ)的Sun JDK掌握好。

JDK有以下三種版本:

J2SE,standard edition,標(biāo)準(zhǔn)版,是我們通常用的一個版本J2EE,enterpsise edtion,企業(yè)版,使用這種JDK開發(fā)J2EE應(yīng)用程序J2ME,micro edtion,主要用于移動設(shè)備、嵌入式設(shè)備上的java應(yīng)用程序

我們常常用JDK來代指Java API,Java API是Java的應(yīng)用程序接口,其實就是前輩們寫好的一些java Class,包括一些重要的語言結(jié)構(gòu)以及基本圖形,網(wǎng)絡(luò)和文件I/O等等 ,我們在自己的程序中,調(diào)用前輩們寫好的這些Class,來作為我們自己開發(fā)的一個基礎(chǔ)。當(dāng)然,現(xiàn)在已經(jīng)有越來越多的性能更好或者功能更強大的第三方類庫供我們使用。

JRE:Java Runtime Enviromental(java運行時環(huán)境)。也就是我們說的JAVA平臺,所有的Java程序都要在JRE下才能運行。包括JVM和JAVA核心類庫和支持文件。與JDK相比,它不包含開發(fā)工具——編譯器、調(diào)試器和其它工具。

JVM:Java Virtual Mechinal(JAVA虛擬機)。JVM是JRE的一部分,它是一個虛構(gòu)出來的計算機,是通過在實際的計算機上仿真模擬各種計算機功能來實現(xiàn)的。JVM有自己完善的硬件架構(gòu),如處理器、堆棧、寄存器等,還具有相應(yīng)的指令系統(tǒng)。JVM 的主要工作是解釋自己的指令集(即字節(jié)碼)并映射到本地的 CPU 的指令集或 OS 的系統(tǒng)調(diào)用。Java語言是跨平臺運行的,其實就是不同的操作系統(tǒng),使用不同的JVM映射規(guī)則,讓其與操作系統(tǒng)無關(guān),完成了跨平臺性。JVM 對上層的 Java 源文件是不關(guān)心的,它關(guān)注的只是由源文件生成的類文件( class file)。類文件的組成包括 JVM 指令集,符號表以及一些補助信息。

下圖很好的表面了JDK,JRE,JVM三者間的關(guān)系:

我們開發(fā)的實際情況是:我們利用JDK(調(diào)用JAVA API)開發(fā)了屬于我們自己的JAVA程序后,通過JDK中的編譯程序(javac)將我們的文本java文件編譯成JAVA字節(jié)碼,在JRE上運行這些JAVA字節(jié)碼,JVM解析這些字節(jié)碼,映射到CPU指令集或OS的系統(tǒng)調(diào)用。

關(guān)鍵詞: JDK JRE JVM Java