1.概念:
- JDK(Java Development Kit)即Java開發工具包。是Java開發環境的核心組件,爲Java程序編譯,運行和調試提供所有工具,可執行文件和二進制文件,是一個平臺特定的軟件。JDK目錄下包含六個文件夾、一個src類庫源碼壓縮包、和其他幾個聲明文件。其中,真正在運行java時起作用的 是以下四個文件夾:bin、include、lib、 jre。
bin:最主要的是編譯器(javac.exe)
include:java和JVM交互用的頭文件
lib:類庫
jre:java運行環境
- JRE(Java Runtime Environment)即Java運行環境。包含JVM標準實現及Java核心類庫。因爲JRE是Java運行環境,只包含JVM(jre裏有運行.class的java.exe),不包含編譯器/調試器這樣的開發工具。
JRE可類比爲一臺計算機,Win64應用程序需要操作系統運行,同樣,Java程序需要JRE才能運行。 - JVM(Java Virtual Machine),即java虛擬機, 一個虛構出來的計算機,裏面主要包含了jvm和java運行時基本類庫, Java虛擬機在執行字節碼時,把字節碼解釋成具體平臺上的機器指令執行。當我們運行一個程序時,JVM負責將字節碼轉換爲特定機器代碼,JVM提供了內存管理/垃圾回收和安全機制等。這就是Java的能夠“一次編譯,到處運行”的原因。
2.區別
JDK是開發環境, 爲java程序提供編譯,運行和調試工具,包含JRE。
JRE是運行環境,運行.class文件,包含JVM。
JVM是Java虛擬機,負責將字節碼轉換爲特定機器代碼,JVM提供了內存管理/垃圾回收和安全機制等。
Java執行過程:我們利用JDK(調用JAVA API)開發了屬於我們自己的JAVA程序後,通過JDK中的編譯程序(javac)將我們的文本java文件編譯成JAVA字節碼,在JRE上運行這些JAVA字節碼,JVM解析這些字節碼,映射到CPU指令集或OS的系統調用。
3.聯繫
JVM+lib = JRE
JRE + (bin,lib,include...) = JDK
4.圖解