詳解Java中的JDK、JRE、JVM
JDK、JRE、JVM
JDK包含JRE,而JRE包含JVM
JDK(Java Development Kit)是針對Java開發(fā)員的產(chǎn)品,是整個Java的核心,包括了Java運行環(huán)境JRE、Java工具和Java基礎(chǔ)類庫。Java Runtime Environment(JRE)是運行JAVA程序所必須的環(huán)境的集合,包含JVM標準實現(xiàn)及Java核心類庫。JVM是Java Virtual Machine(Java虛擬機)的縮寫,是整個java實現(xiàn)跨平臺的最核心的部分,能夠運行以Java語言寫作的軟件程序。
JDK
- JDK是Java開發(fā)工具包,是Sun Microsystems針對Java開發(fā)員的產(chǎn)品。
- JDK中包含JRE,在JDK的安裝目錄下有一個名為jre的目錄,里面有兩個文件夾bin和lib,在這里可以認為bin里的就是jvm,lib中則是jvm工作所需要的類庫,而jvm和 lib和>起來就稱為jre。
- JDK是整個JAVA的核心,包括了Java運行環(huán)境JRE(Java Runtime Envirnment)、一堆Java工具(javac/java/jdb等)和Java基礎(chǔ)的類庫(即Java API 包括>rt.jar)。
Java Runtime Environment(JRE)
- JRE是運行基于Java語言編寫的程序所不可缺少的運行環(huán)境。也是通過它,Java的開發(fā)者才得以將自己開發(fā)的程序發(fā)布到用戶手中,讓用戶使用。
- JRE中包含了Java virtual machine(JVM),runtime class libraries和Java application launcher,這些是運行Java程序的必要組件。
- 與JDK不同,JRE是Java運行環(huán)境,并不是一個開發(fā)環(huán)境,所以沒有包含任何開發(fā)工具(如編譯器和調(diào)試器),只是針對于使用Java程序的用戶。
JVM
- JVM是整個java實現(xiàn)跨平臺的最核心的部分,所有的java程序會首先被編譯為.class的類文件,這種類文件可以在虛擬機上執(zhí)行。class并不直接與機器的操作系統(tǒng)相對應(yīng),而是經(jīng)過虛擬機間接與操作系統(tǒng)交互,由虛擬機將程序解釋給本地系統(tǒng)執(zhí)行。
- 只有JVM還不能產(chǎn)生class的執(zhí)行,因為在解釋class的時候JVM需要調(diào)用解釋所需要的類庫lib,而jre包含lib類庫。在JDK下面的的jre目錄里面有兩個文件夾bin和lib,在這里可以認為bin里的就是jvm,lib中則是jvm工作所需要的類庫,而jvm和 lib和起來就稱為jre。JVM屏蔽了與具體操作系統(tǒng)平臺相關(guān)的信息,使得Java程序只需生成在Java虛擬機上運行的目標代碼(字節(jié)碼),就可以在多種平臺上不加修改地運行。
以上就是本文的全部內(nèi)容,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作能帶來一定的幫助,同時也希望多多支持腳本之家!
相關(guān)文章
org.apache.ibatis.binding.BindingException異常報錯原因以及詳細解決方案
這篇文章主要給大家介紹了關(guān)于org.apache.ibatis.binding.BindingException異常報錯原因以及詳細解決方案的相關(guān)資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下2023-02-02Java源碼解析之HashMap的put、resize方法詳解
這篇文章主要介紹了Java源碼解析之HashMap的put、resize方法詳解,文中有非常詳細的代碼示例,對正在學(xué)習(xí)java的小伙伴們有很大的幫助,需要的朋友可以參考下2021-04-04springboot?使用websocket技術(shù)主動給前端發(fā)送消息的實現(xiàn)
這篇文章主要介紹了springboot?使用websocket技術(shù)主動給前端發(fā)送消息的實現(xiàn)方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-12-12解決mybatis批量更新(update foreach)失敗的問題
這篇文章主要介紹了解決mybatis批量更新(update foreach)失敗的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-11-11