JVM、JRE、JDK之間的關系


這些是我結合了幾個博主的內容

詮釋一、

JDK(java development kit)

JDK是Java開發工具包,是整個Java的核心,包括了Java運行環境JRE、Java工具和Java基礎類庫。

JRE(java runtime environment)

JRE是Java的運行環境,包括JVM標准實現及Java核心類庫。

JVM(java virtual machine)

JVM是java虛擬機,是整個java實現跨平台的最核心的部分,能夠運行以Java語言寫作的軟件程序。

三者的關系

JDK=JRE+其他

JRE=JVM+其他

 

JDK安裝目錄結構解析

詮釋二、

JVM:

  JVM即為Java虛擬機,它是Java跨平台實現的最核心的部分,所有的Java程序首先被編譯成java.class字節碼文件,這種文件可以在JVM上執行,JVM在執行字節碼文件時,把其翻譯成具體平台上的機器指令執行。(一次編譯,到處運行)

JVM執行程序的過程:

  1.加載.class 文件

  2.管理並分配內存

  3.執行垃圾收集

JRE:

  JRE是Java Runtime Environment縮寫,指Java運行環境。它包含Java虛擬機(jvm)、Java核心類庫和支持文件。它不包含開發工具(JDK)--編譯器,調試器和其他工具。

JDK:

  JDK是(Java Development Kit)的縮寫,指的是Java開發工具包。JDK是整個java開發的核心,它包含了JAVA的運行環境(JVM+Java系統類庫)和JAVA工具。

三者之間關系:

  JDK包含JRE,JRE包含JVM。

詮釋三、

   JDK(Java Development Kit)是針對Java開發員的產品,是整個Java的核心,包括了Java運行環境JRE、Java工具和Java基礎類庫。Java Runtime Environment(JRE)是運行JAVA程序所必須的環境的集合,包含JVM標准實現及Java核心類庫。JVM是Java Virtual Machine(Java虛擬機)的縮寫,是整個java實現跨平台的最核心的部分,能夠運行以Java語言寫作的軟件程序。

   在計算機開發語言的歷史中,從來沒有哪種語言像Java那樣受到如此眾多廠商的支持,有如此多的開發工具。      

JDK(Java Development Kit)   

  JDK是Java開發工具包,是Sun Microsystems針對Java開發員的產品。   

  JDK中包含JRE,在JDK的安裝目錄下有一個名為jre的目錄,里面有兩個文件夾bin和lib,在這里可以認為bin里的就是jvm,lib中則是jvm工作所需要的類庫,而jvm和 lib和起來就稱為jre。

  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。   

    ③ME(J2ME),micro edition,主要用於移動設備、嵌入式設備上的java應用程序,從JDK 5.0開始,改名為Java ME。          

  金字塔結構 JDK=JRE+JVM+其它 運行Java程序一般都要求用戶的電腦安裝JRE環境(Java Runtime Environment);沒有jre,java程序無法運行;而沒有java程序,jre就沒有用武之地。   

Java Runtime Environment(JRE)   

  是運行基於Java語言編寫的程序所不可缺少的運行環境。也是通過它,Java的開發者才得以將自己開發的程序發布到用戶手中,讓用戶使用。   

  JRE中包含了Java virtual machine(JVM),runtime class libraries和Java application launcher,這些是運行Java程序的必要組件。   

  與大家熟知的JDK不同,JRE是Java運行環境,並不是一個開發環境,所以沒有包含任何開發工具(如編譯器和調試器),只是針對於使用Java程序的用戶。   

JVM(java virtual machine)   

  就是我們常說的java虛擬機,它是整個java實現跨平台的最核心的部分,所有的java程序會首先被編譯為.class的類文件,這種類文件可以在虛擬機上執行。   

  也就是說class並不直接與機器的操作系統相對應,而是經過虛擬機間接與操作系統交互,由虛擬機將程序解釋給本地系統執行。   

  只有JVM還不能成class的執行,因為在解釋class的時候JVM需要調用解釋所需要的類庫lib,而jre包含lib類庫。   

  JVM屏蔽了與具體操作系統平台相關的信息,使得Java程序只需生成在Java虛擬機上運行的目標代碼(字節碼),就可以在多種平台上不加修改地運行


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM