Java JDK、JRE?JVM的區別與聯絡
很多朋友可能跟我一樣,已經使用JAVA開發很久了,可是對JDK,JRE,JVM這三者的聯絡與區別,一直都是模模糊糊的。
今天特寫此文,來整理下三者的關係。
JDK : Java Development ToolKit(Java開發工具包)。JDK是整個JAVA的核心,包括了Java執行環境(Java Runtime Envirnment),一堆Java工具(javac/java/jdb等)和Java基礎的類庫(即Java API 包括rt.jar)。
最主流的JDK是Sun公司釋出的JDK,除了Sun之外,還有很多公司和組織都開發了屬於自己的JDK,例如國外IBM公司開發了屬於自己的
JDK有以下三種版本:
J2SE,standard edition,標準版,是我們通常用的一個版本J2EE,enterpsise edtion,企業版,使用這種JDK開發J2EE應用程式J2ME,micro edtion,主要用於移動裝置、嵌入式裝置上的java應用程式
我們常常用JDK來代指Java API,Java API是Java的應用程式介面,其實就是前輩們寫好的一些
JRE:Java Runtime Enviromental(java執行時環境)。也就是我們說的JAVA平臺,所有的Java程式都要在JRE下才能執行。包括JVM和JAVA核心類庫和支援檔案。與JDK相比,它不包含開發工具——編譯器、偵錯程式和其它工具。
JVM:Java Virtual Mechinal(JAVA虛擬機器)。JVM是JRE的一部分,它是一個虛構出來的計算機,是通過在實際的計算機上模擬模擬各種計算機功能來實現的。
下圖很好的表面了JDK,JRE,JVM三者間的關係:
我們開發的實際情況是:我們利用JDK(呼叫JAVA API)開發了屬於我們自己的JAVA程式後,通過JDK中的編譯程式(javac)將我們的文字java檔案編譯成JAVA位元組碼,在JRE上執行這些JAVA位元組碼,JVM解析這些位元組碼,對映到CPU指令集或OS的系統呼叫。