前些日子有網友面試時被問到如題所示的問題,由於他之前沒有準備到這些最最基礎的知識,沒有考慮過這個問題,所以被問到時竟一臉萌幣,回答的不是很好。這道題主要考的是對 Java 基礎知識的瞭解,有些同學可能已經忘了。所以現在我們一起來分析下。
JDK和JRE是什麼?
在回答這個問題之前我們先來看看什麼是JDK什麼是JRE?以及JDK和JRE的關係。
我們看一下來自百度百科的解釋:
JDK是 Java 語言的軟體開發工具包,主要用於移動裝置、嵌入式裝置上的java應用程式。JDK是整個java開發的核心,它包含了JAVA的執行環境(JVM+Java系統類庫)和JAVA工具。--百度百科 JRE是Java Runtime Environment縮寫,指Java執行環境,是Sun的產品。執行JAVA程式所必須的環境的集合,包含JVM標準實現及Java核心類庫。--百度百科
《深入理解Java虛擬機器:JVM高階特性與最佳實踐(第2版)》:
我們可以把Java程式設計語言、Java虛擬機器、Java API 類庫這三部分統稱為 JDK(Java Development Kit),JDK 是用於支援 Java 程式開發的最小環境...另外,可以把 Java API 類庫中的 Java SE API 子集和 Java 虛擬機器這兩部分統稱為 JRE(Java Runtime Environment),JRE 是支援 Java 程式執行的標準環境。-《深入理解Java虛擬機器:JVM高階特性與最佳實踐(第2版)》
書中同樣提到了Java 技術體系所包含的內容及 JDK 和 JRE 所涵蓋範圍:
(網圖,侵刪)二者的關係
根據如上所說,我們可以總結出如下圖所示的 JDK 和 JRE 的關係圖:
也就是說JDK包含了JRE,這一點我們可以證實,在安裝JDK的目錄下找到JRE的資料夾: JDK(Java Development Kit)是我們學習 Java 首先要安裝的軟體,值得注意的是 JDK 安裝完成之後,安裝嚮導會詢問你是否安裝 JRE(Java Runtime Environment),還要不要安裝呢?知道 JDK 和 JRE 是什麼關係後回答這個問題就不難了吧。也就是說,當你安裝 JDK 完成後已經預設安裝了 JRE ,因為安裝完 JDK 肯定是要開發的吧,開發就要執行 Java 程式,所以 JDK 包含了 Java 的執行環境 JRE。如果你只是單純的要執行 Java 程式而不進行開發、除錯等,那麼就只需要安裝 JRE 就行了。
所以上文提到的問題,對於開發人員來說安裝完JDK後就不需要再安裝JRE了。
伺服器上是否只安裝JRE就可以了?
另外一個問題,既然如此,那麼在伺服器上是否只安裝JRE就可以了?
理論上是可以的,但是有前提條件。
伺服器上只安裝JRE的前提:
-
釋出到伺服器上時所有檔案都是編譯好的檔案,包括JSP檔案
-
後期不在伺服器上直接修改(因為導致修改後的檔案未重新編譯)
如果部署的專案都是編譯後重新部署,不在伺服器上直接修改的話是可以只安裝 JRE 的。
注意:如果存在未編譯的 Java 原始檔,或者在伺服器上修改原始檔,伺服器就需要安裝 JDK。
在伺服器上安裝JDK的好處:
-
可以編譯java檔案,方便後期維護
-
保證JSP檔案修改後穩定執行
綜合考慮,為避免以後這樣那樣的麻煩事發生,伺服器上還是安裝JDK吧!畢竟專案後期維護才是主要的事情。
有了以上的分析,相信面試官再問你這樣的問題你該知道怎麼回答了吧。