通過實例了解Java jdk和jre的區別
首先筆者想闡明的是:JDK和JRE沒想象中的那么簡單。
相信大家都知道JDK和JRE是什么,但是具體干什么用不妨先試問下自己,如果能說出個所以然來,那么這篇文章大神請自覺忽略,呵呵,或者可以溫故一下。
如果有哪里說的不對的地方還望指出,謝謝。
下面來簡單說明下
先上張圖,宏觀的看一下
從圖中可以看出JDK包含JRE包含JVM...
JDK:java development kit (java開發工具)
JRE:java runtime environment (java運行時環境)
引申出JVM
JVM:java virtuak machine (java虛擬機)
一、JDK——開發環境(核心)
java development kit 的縮寫,意思是JAVA開發工具,我們寫文檔做PPT需要office 辦公軟件,開發當然需要開發工具了,說到開發工具大家肯定會想到Eclipse,但是如果直接安裝Eclipse你會發現它是運行不起來 是會報錯的,只有安裝了JDK,配置好了環境變量和path才可以運行成功。這點相信很多人都深有體會。
JDK主要包含三部分,
第一部分就是Java運行時環境,JVM。
第二部分就是Java的基礎類庫,這個類庫的數量還是非常可觀的。
第三部分就是Java的開發工具,它們都是輔助你更好的使用Java的利器。
詳尋《玩好JDK,面試不用愁》
二、JRE——運行環境
java runtime environment (java運行時環境)的縮寫
1.1_JDK中的JRE
如下圖:jdk中包含的jre,在jre的bin目錄里有個jvm.dll,既然JRE是運行時環境,那么運行在哪?肯定是JVM虛擬機上了。另,jre的lib目錄中放的是一些JAVA類庫的class文件,已經打包成jar文件。
1.2_第二個JRE(獨立出來的運行時環境)
如下圖,不管是JDK中的JRE還是JRE既然是運行時環境必須有JVM。所以JVM也是有兩個的。
三、JVM——轉換環境
java virtuak machine (java虛擬機)的縮寫。
大家一提到JAVA的優點就會想到:一次編譯,隨處運行,說白了就是跨平臺性好,這點JVM功不可沒。
JAVA的程序也就是我們編譯的代碼都會編譯為Class文件,Class文件就是在JVM上運行的文件,
只有JVM還不能成class的執行,因為在解釋class的時候JVM需要調用解釋所需要的類庫lib,而jre包含lib類庫。
JVM屏蔽了與具體操作系統平臺相關的信息,使得Java程序只需生成在Java虛擬機上運行的目標代碼(字節碼),就可以在多種平臺上不加修改地運行。
JVM也是一門很深的學問,感興趣的童鞋可以深入研究,只有好處,沒有壞處。
其實有時候面試官問JDK和JRE的區別的目的不是想讓你解釋什么名詞的,而是想看看你的基礎和研究JAVA的深淺,還有另一方面就是你是不是經常喜歡問為什么。
總結:
如果你面試遇到這個問題了,不用解釋太多,一個詞(javac)就夠了,如果面試官不傻的話,我相信他已經秒懂了。
如果繼續追問的話,再一 一給他細分。
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。
相關文章:
