1. 程式人生 > >JDK、JRE、JVM的聯絡和區別

JDK、JRE、JVM的聯絡和區別

JDK(Java Development Kit )(Java開發工具)

JDK,是整個JAVA的核心,包括了Java執行環境(JRE),JAVA工具(JAVAC/JAVA/JDB等)和JAVA基礎類庫(即JAVA API 包括 rt.jar)。
Java工具

◆ Javac:Java編譯器,將Java原始碼轉換成位元組碼。

◆ Java:Java直譯器,直接從類檔案執行Java應用程式位元組程式碼。

◆ appletviewer:小程式瀏覽器,一種執行HTML檔案上的Java小程式的Java瀏覽器。

◆ Javadoc:根據Java原始碼及說明語句生成HTML文件。

◆ Jdb:Java偵錯程式,可以逐行執行程式,設定斷點和檢查變數。

◆ Javah:產生可以呼叫Java過程的C過程,或建立能被Java程式呼叫的C過程的標頭檔案。

◆ Javap:Java反彙編器,顯示編譯類檔案中的可訪問功能和資料,同時顯示位元組程式碼含義。
Java基礎類庫

◆ Java.applet:提供建立applet小程式所需要的類

◆ Java.awt:包含用於建立使用者介面和繪製圖形影象的所有類

◆ Java.io:提供與輸入輸出相關的類

◆ Java.beans:包含與開發javaBeans相關的類

◆ Java.lang:提供java語言程式設計的基礎類

◆ Java.net:提供實現網路操作相關的類

◆ Java.nio:為輸入輸出提供緩衝區的類

◆ Java.text:提供處理文字、日期、數字和訊息的類和介面

◆ Java.util:提供處理日期、時間、隨機數生成等各種使用工具的類

◆ Javax.net:提供用於網路應用程式的類、網路應用擴充套件類

◆ Java.swing:提供一組與AWT功能相同的純java的元件類
JRE(Java Runtime Environment)(Java執行環境)

JRE,是執行JAVA程式所必須的環境的集合,它包括JVM虛擬機器、JAVA平臺核心類和支援檔案。
JVM(Java Virtual Machine)(Java虛擬機器)

JVM,是整個JAVA實現跨平臺的最核心的部分,所有的JAVA程式會首先被編譯為.class的類檔案,這種類檔案可以在JAVA虛擬機器上執行。也就是說class並不直接與機器的作業系統相對應,而是經過虛擬機器間接與作業系統互動,由虛擬機器將程式解釋給本地系統執行。只有JVM還不能成class的執行,因為在解釋.class的時候JVM需要呼叫解釋所需要的類庫lib,而JRE包含lib類庫。Java虛擬機器是實現跨平臺的核心機制。JAVA 虛擬機器機制遮蔽了底層執行平臺的差別,實現了“一次編譯,隨處執行”。 如圖所示:


在這裡插入圖片描述
JDK JRE JVM 關係圖

在這裡插入圖片描述
JAVA程式執行機制

Java首先利用文字編輯器編寫 Java源程式,原始檔的字尾名為.java;再利用編譯器(javac)將源程式編譯成位元組碼檔案,位元組碼檔案的字尾名為.class; 最後利用虛擬機器(直譯器,java)解釋執行。如果圖所示:


在這裡插入圖片描述

參考文件:

https://www.cnblogs.com/zbl3033/p/3245944.html
https://www.sxt.cn/Java_jQuery_in_action/JVM_JRE_JDK.html