深度剖析JDK/JRE/JVM三者的區(qū)別
你對jdk,jre,jvm三者的區(qū)別和聯(lián)系是否了解,這里和大家分享一下, j2sdk(Software Development Kit for Java 2) ,簡稱JDK.它包括了JDK(Java Development Kit),JRE(Java Runtime Environment),Java Plug-in. JDK即Java開發(fā)工具包. JDK是一組API,也可以說是一些java Class。
jdk,jre,jvm區(qū)別
◆ j2sdk(Software Development Kit for Java 2) ,簡稱JDK.它包括了JDK(Java Development Kit),JRE(Java Runtime Environment),Java Plug-in. JDK即Java開發(fā)工具包. JDK是一組API,也可以說是一些java Class。JDK是一切java應用程序的基礎,所有的java應用程序都構建在這個之上的。位于"Java安裝目錄\jdk1.5.0_07".
◆JRE ( Java Runtime Environment ),是運行 Java 程序必不可少的(除非用其他一些編譯環(huán)境編譯成.exe可執(zhí)行文件……),JRE的地位就象一臺PC機一樣,我們寫好的Win32應用程序需要操作系統(tǒng)幫我們運行,同樣的,我們編寫的Java程序也必須要JRE才能運行。所以當你裝JDK后,如果分別在硬盤上的兩個不同地方安裝了兩套JRE,那么你可以想象你的電腦有兩臺虛擬的Java PC機,都具有運行Java程序的功能。所以我們可以說,只要你的電腦安裝了JRE,就可以正確運行Java應用程序。JRE里面有一個 JVM , JRE 與具體的 CPU 結(jié)構和操作系統(tǒng)有關,我們從 Sun 下載 JRE 的時候就看到了不同的各種版本,,同 JVM 一起組成 JRE 的還有一些 API (如 awt , swing 等), JRE 是運行 Java 程序必不可少的.
◆JVM 是 Java 平臺的基礎,和實際的機器一樣,它也有自己的指令集,并且在運行時操作不同的內(nèi)存區(qū)域。 JVM 通過抽象的操作系統(tǒng)和 CPU 結(jié)構,提供了一種與平臺無關的代碼執(zhí)行方法,即與特殊的實現(xiàn)方法、主機硬件、主機操作系統(tǒng)無關。但是在一些小的方面, JVM 的實現(xiàn)也是互不相同的,比如垃圾回收算法,線程調(diào)度算法(可能不同 OS 有不同的實現(xiàn))。 JVM 的主要工作是解釋自己的指令集(即字節(jié)碼)并映射到本地的 CPU 的指令集或 OS 的系統(tǒng)調(diào)用,保護用戶免被惡意程序騷擾。 JVM 對上層的 Java 源文件是不關心的,它關注的只是由源文件生成的類文件( class file )。類文件的組成包括 JVM 指令集,符號表以及一些補助信息。
要運行Applet,在客戶端必須安裝有 JRE,即“運行時”,容易一點理解,就象所謂的“插件”,要開發(fā)JAVA應用程序\Web應用,就必須在服務器端安裝相應的 JVM+JDK 了(開發(fā)應用 Java web應用 時,客戶端不需要安裝任何的JVM)
如果你使用JAVA開發(fā)應用,就需要安裝 JRE+JDK,就是 J2SE.
如果在客戶端運行Applet,客戶端瀏覽器必須嵌有JAVA JVM,如果沒有,就需要安裝,即:在客戶端創(chuàng)建JRE(運行時,包含JVM),而客戶端是不需要做開發(fā)的,所以,JDK就沒有必要安裝了不同版本的Applet在不同的JVM下可能無法正常運行,而Microsoft JVM只是Sun JVM的“低版本”,微軟在windows xp/2003中干脆將JVM去掉了.
【編輯推薦】