JDK.JRE和JVM

陈平安-210162703006發表於2024-08-07

目錄
  • 1.詳細介紹
    • 1.1 JDK(Java 開發工具包)
    • 1.2 JRE(Java執行時環境)
    • 1.3 JVM(Java 虛擬機器)
  • 2 三者區別與聯絡

1.詳細介紹

1.1 JDK(Java 開發工具包)

​ JDK是java開發工具包,基本上每個學java的人都會先在機器 上裝一個JDK,那他都包含哪幾部分呢?讓我們看一下JDK的安裝目錄。在目錄下面有 六個資料夾、一個src類庫原始碼壓縮包、和其他幾個宣告檔案。其中,真正在執行java時起作用的 是以下四個資料夾:bin、include、lib、 jre。現在我們可以看出這樣一個關係,JDK包含JRE,而JRE包 含JVM。

bin:最主要的是編譯器(javac.exe)

include:java和JVM互動用的標頭檔案

lib:類庫

jre:java執行環境

注意:這裡的bin、lib資料夾和jre裡的bin、lib是 不同的,總的來說JDK是用於java程式的開發,而jre則 是隻能執行class而沒有編譯的功能。eclipse、idea等 其他IDE有自己的編譯器而不是用JDK bin目錄中自帶的,所以在安裝時你會發現他們只要求你 選中jre路徑就ok了。

1.2 JRE(Java執行時環境)

  1. Java 虛擬機器(JVM):JVM 是 JRE 的核心元件,它負責執行 Java 位元組碼並管理 Java 程式的執行時環境。

  2. 核心類庫(Core Libraries):JRE 包括了一系列的核心類庫,這些類庫包含了 Java 程式語言的基本功能和工具。一些重要的核心庫包括:

    ​ java.lang:提供了 Java 語言的基本類和異常處理機制。

    ​ java.util:包含各種實用工具類,例如集合框架(如 ArrayList、HashMap)和日期時間處理類。

    ​ java.io:用於輸入和輸出操作的類庫,包括檔案操作和流處理。

    ​ java.net:用於網路通訊的類庫,支援建立網路連線和資料傳輸。

  3. AWT 和 Swing(使用者介面庫):JRE 包括 Abstract Window Toolkit (AWT) 和 Swing,這些庫用於建立圖形使用者介面(GUI)應用程式。它們提供了各種元件和工具,允許開發人員構建互動式的視窗應用程式。

  4. Java 核心包(Java API):JRE 還包括其他的 Java API,用於訪問不同領域的功能和服務,如資料庫訪問(JDBC)、XML 處理(Java XML API)、安全性(Java Security API)等。

  5. Java 執行時支援:JRE 包括支援 Java 程式的執行時環境,包括記憶體管理、垃圾回收、執行緒管理等。這些元件保證了 Java 程式的穩定性和效能。

  6. 部分標準擴充套件(Optional Extensions):JRE 還可以包括一些可選的擴充套件,這些擴充套件提供了額外的功能,如 Java Naming and Directory Interface (JNDI)、Java Authentication and Authorization Service (JAAS) 等。這些擴充套件通常不是所有 JRE 實現的一部分,而是根據需要進行安裝或配置。

1.3 JVM(Java 虛擬機器)

JVM,是JRE的一部分。它是整個java實現跨平臺的最核心的部分。JVM可以理解為是一個虛擬出來的計算機,是可執行java位元組碼檔案的虛擬計算機。

​ 它主要負責把 Java 程式生成的位元組碼檔案,解釋成具體系統平臺上的機器指令,讓其在各個平臺執行。當使用Java編譯器編譯Java程式時,生成的是與平臺無關的位元組碼,這些位元組碼只面向JVM。

​ 不同平臺的JVM都是不同的,但它們都提供了相同的介面。JVM是Java程式跨平臺的關鍵部分,只要為不同平臺實現了相應的虛擬機器,編譯後的Java位元組碼就可以在該平臺上執行。要想在不同的作業系統上執行Java程式,就需要在不同作業系統上安裝對應的JVM。所以,JVM有Windows版本、MAC版本、Linux版本等。

2 三者區別與聯絡

JDk=java開發工具+JRE

JRE=JVM+Java類庫

  • JDK 用於開發,JRE 用於執行Java程式 ;如果只是執行Java程式,可以只安裝JRE,無序安裝JDK。

  • JDk包含JRE,JDK 和 JRE 中都包含 JVM。

  • JVM 是 Java 程式語言的核心並且具有平臺獨立性。![a19faab0f87a18c097350b474c9a91ed](C:\Users\dzf\Documents\Tencent Files\3293410015\nt_qq\nt_data\Pic\2024-07\Ori\a19faab0f87a18c097350b474c9a91ed.png)

相關文章