微吼云上線多路互動直播服務 加速多場景互動直播落地
828
2025-03-31
大家應該都知道JDK和JRE是什么,但是當面試官問道“請用你所學的java知識,告訴我JDK是干什么的?”,“JRE有什么作用?”,“這兩者有什么區別和聯系?”等問題時,可能就說的不是很明白了。下面就詳細講述一下JDK和JRE之間的區別和聯系,為大家徹底理清JDK和JRE相關的知識。
話不多說,先上圖:
從圖中可以看出JDK是整個JAVA的核心,包括了Java運行環境JRE(Java Runtime Envirnment)、一堆Java開發工具(javac/java/jdb等)和Java基礎的類庫(即Java API 包),下面開始揭開JDK和JRE的神秘面紗。
一、概念
JDK全稱為Java Development Kit,顧名思義是java開發工具包,是程序員使用java語言編寫java程序所需的開發工具包。
JRE全稱為Java Runtime Environment,顧名思義是java運行時的環境,包含了java虛擬機,java基礎類庫,是使用java語言編寫的程序運行所需要的軟件環境。
二、區別
1、面向人群不同
JDK是提供給程序員使用的。JRE是提供給想運行java程序的用戶使用的。
2、重要程度不同
如果你需要編寫java程序,需要安裝JDK。如果你需要運行java程序,只需要安裝JRE就可以了。
1
3、安裝目錄不同
3.1、如果安裝JDK,電腦會有兩套JRE
一套是JDK中的JRE,位于 \jre 目錄下。
另外一套是JRE自己的,在下載安裝時默認位于 C:\Program Files\Java\jre目錄下。
在這里博主當時安裝JRE時是放到了D盤,如圖:
(1)E:\Java\jre
(2)D:\Java\jre
3.2、如果只安裝JRE,會默認在 C:\Program Files\Java 目錄下安裝唯一的一套JRE,位置可以選擇,這里博主放到了D盤:
三、聯系
1、包含關系
JDK包含了JRE,同時還包含了編譯java源碼的編譯器javac,還包含了很多java程序調試和分析的工具(JConsole,Web Services等工具軟件),還包含了Java基礎的類庫(即Java API 包括rt.jar)。
2、執行關系
在這里首先就要提到JVM,JVM(Java Virtual Machine)就是我們常說的java虛擬機,它是整個java實現跨平臺的最核心的部分,所有的java程序會首先被編譯為.class的類文件,這種類文件可以在虛擬機上執行。
也就是說class并不直接與機器的操作系統相對應,而是經過虛擬機間接與操作系統交互,由虛擬機將程序解釋給本地系統執行。
只有JVM還不能成class的執行,因為在解釋class的時候JVM需要調用解釋所需要的類庫lib,而jre包含lib類庫。在JDK下面的的jre目錄里面有兩個文件夾bin和lib,在這里可以認為bin里的就是jvm,lib中則是jvm工作所需要的類庫,而jvm和 lib和起來就稱為jre。
得到公式:jvm+lib=jre
1
JVM屏蔽了與具體操作系統平臺相關的信息,使得Java程序只需生成在Java虛擬機上運行的目標代碼(字節碼),就可以在多種平臺上不加修改地運行。
1
總而言之,我們利用JDK(調用JAVA API)開發了屬于我們自己的JAVA程序后,通過JDK中的編譯程序(javac)將我們的文本java文件編譯成JAVA字節碼,在JRE上運行這些JAVA字節碼,JVM解析這些字節碼,映射到CPU指令集或OS的系統調用。
Perfection is achieved not when you have nothing more to add, but when you have nothing left to take away.—— Antoine de Saint-Exupery
Java JDK
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。