通過實例了解Java jdk和jre的區(qū)別
首先筆者想闡明的是:JDK和JRE沒想象中的那么簡單。
相信大家都知道JDK和JRE是什么,但是具體干什么用不妨先試問下自己,如果能說出個所以然來,那么這篇文章大神請自覺忽略,呵呵,或者可以溫故一下。
如果有哪里說的不對的地方還望指出,謝謝。
下面來簡單說明下
先上張圖,宏觀的看一下
從圖中可以看出JDK包含JRE包含JVM...
JDK:java development kit (java開發(fā)工具)
JRE:java runtime environment (java運行時環(huán)境)
引申出JVM
JVM:java virtuak machine (java虛擬機)
一、JDK——開發(fā)環(huán)境(核心)
java development kit 的縮寫,意思是JAVA開發(fā)工具,我們寫文檔做PPT需要office 辦公軟件,開發(fā)當然需要開發(fā)工具了,說到開發(fā)工具大家肯定會想到Eclipse,但是如果直接安裝Eclipse你會發(fā)現(xiàn)它是運行不起來 是會報錯的,只有安裝了JDK,配置好了環(huán)境變量和path才可以運行成功。這點相信很多人都深有體會。
JDK主要包含三部分,
第一部分就是Java運行時環(huán)境,JVM。
第二部分就是Java的基礎類庫,這個類庫的數(shù)量還是非常可觀的。
第三部分就是Java的開發(fā)工具,它們都是輔助你更好的使用Java的利器。
詳尋《玩好JDK,面試不用愁》
二、JRE——運行環(huán)境
java runtime environment (java運行時環(huán)境)的縮寫
1.1_JDK中的JRE
如下圖:jdk中包含的jre,在jre的bin目錄里有個jvm.dll,既然JRE是運行時環(huán)境,那么運行在哪?肯定是JVM虛擬機上了。另,jre的lib目錄中放的是一些JAVA類庫的class文件,已經(jīng)打包成jar文件。
1.2_第二個JRE(獨立出來的運行時環(huán)境)
如下圖,不管是JDK中的JRE還是JRE既然是運行時環(huán)境必須有JVM。所以JVM也是有兩個的。
三、JVM——轉(zhuǎn)換環(huán)境
java virtuak machine (java虛擬機)的縮寫。
大家一提到JAVA的優(yōu)點就會想到:一次編譯,隨處運行,說白了就是跨平臺性好,這點JVM功不可沒。
JAVA的程序也就是我們編譯的代碼都會編譯為Class文件,Class文件就是在JVM上運行的文件,
只有JVM還不能成class的執(zhí)行,因為在解釋class的時候JVM需要調(diào)用解釋所需要的類庫lib,而jre包含lib類庫。
JVM屏蔽了與具體操作系統(tǒng)平臺相關(guān)的信息,使得Java程序只需生成在Java虛擬機上運行的目標代碼(字節(jié)碼),就可以在多種平臺上不加修改地運行。
JVM也是一門很深的學問,感興趣的童鞋可以深入研究,只有好處,沒有壞處。
其實有時候面試官問JDK和JRE的區(qū)別的目的不是想讓你解釋什么名詞的,而是想看看你的基礎和研究JAVA的深淺,還有另一方面就是你是不是經(jīng)常喜歡問為什么。
總結(jié):
如果你面試遇到這個問題了,不用解釋太多,一個詞(javac)就夠了,如果面試官不傻的話,我相信他已經(jīng)秒懂了。
如果繼續(xù)追問的話,再一 一給他細分。
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. ASP中解決“對象關(guān)閉時,不允許操作。”的詭異問題……2. 怎樣才能用js生成xmldom對象,并且在firefox中也實現(xiàn)xml數(shù)據(jù)島?3. CSS可以做的幾個令你嘆為觀止的實例分享4. IE6/IE7/IE8/IE9中tbody的innerHTML不能賦值的完美解決方案5. 詳解ABP框架中的日志管理和設置管理的基本配置6. 將properties文件的配置設置為整個Web應用的全局變量實現(xiàn)方法7. 小技巧處理div內(nèi)容溢出8. phpstudy apache開啟ssi使用詳解9. 在JSP中使用formatNumber控制要顯示的小數(shù)位數(shù)方法10. JSP之表單提交get和post的區(qū)別詳解及實例
