SDK JDK JRE JVM 四者的關係java
一:SDK與JDK的關係(能夠認爲jdk只是sdk的一種子集)架構
SDK是Software Development Kit的縮寫,中文意思是「軟件開發工具包」。這是一個覆蓋面至關普遍的名詞,能夠這麼說:輔助開發某一類軟件的相關文檔、範例和工具的集合均可以叫作「SDK」。SDK是一系列文件的組合,它爲軟件的開發提供一個平臺(它爲軟件開發使用各類API提供便利)。app
JDK(Java Development Kit,Java開發工具包)是Sun Microsystems針對Java開發員的產品。自從Java推出以來,JDK已經成爲使用最普遍的Java SDK(Software development kit)。能夠認爲jdk只是sdk的一種(子集),由於它是開發java程序的一個平臺,開發其餘程序的sdk能夠沒有jdk。jvm
二:JDK JRE JVM的關係(如圖)工具
JDK(Java Development Kit)是針對Java開發員的產品,是整個Java的核心,包括了Java運行環境JRE、Java工具和Java基礎類庫。JRE(Java Runtime Environment)是運行JAVA程序所必須的環境的集合,包含JVM標準實現及Java核心類庫。JVM是Java Virtual Machine(Java虛擬機)的縮寫,是整個java實現跨平臺的最核心的部分,可以運行以Java語言寫做的軟件程序。開發工具
JDK中包含JRE,在JDK的安裝目錄下有一個名爲jre的目錄,裏面有兩個文件夾bin和lib,在這裏能夠認爲bin裏的就是jvm,lib中則是jvm工做所須要的類庫,而jvm和 lib和起來就稱爲jre。spa
JDK是整個JAVA的核心,包括了Java運行環境JRE(Java Runtime Envirnment)、一堆Java工具(javac/java/jdb等)和Java基礎的類庫(即Java API 包括rt.jar)。操作系統
①SE(J2SE),standard edition,標準版,是咱們一般用的一個版本,從JDK 5.0開始,更名爲Java SE。調試
②EE(J2EE),enterprise edition,企業版,使用這種JDK開發J2EE應用程序,從JDK 5.0開始,更名爲Java EE。blog
③ME(J2ME),micro edition,主要用於移動設備、嵌入式設備上的java應用程序,從JDK 5.0開始,更名爲Java ME
JRE(Java Runtime Environment)
是運行基於Java語言編寫的程序所不可缺乏的運行環境。也是經過它,Java的開發者才得以將本身開發的程序發佈到用戶手中,讓用戶使用。
JRE中包含了Java virtual machine(JVM),runtime class libraries和Java application launcher,這些是運行Java程序的必要組件。
與你們熟知的JDK不一樣,JRE是Java運行環境,並非一個開發環境,因此沒有包含任何開發工具(如編譯器和調試器),只是針對於使用Java程序的用戶。
JVM:Java Virtual Mechinal(JAVA虛擬機)。JVM是JRE的一部分,它是一個虛構出來的計算機,是經過在實際的計算機上仿真模擬各類計算機功能來實現的。JVM有本身完善的硬件架構,如處理器、堆棧、寄存器等,還具備相應的指令系統。JVM 的主要工做是解釋本身的指令集(即字節碼)並映射到本地的 CPU 的指令集或 OS 的系統調用。Java語言是跨平臺運行的,其實就是不一樣的操做系統,使用不一樣的JVM映射規則,讓其與操做系統無關,完成了跨平臺性。JVM 對上層的 Java 源文件是不關心的,它關注的只是由源文件生成的類文件( class file )。類文件的組成包括 JVM 指令集,符號表以及一些補助信息。