前些日子有網友面試時被問到如題所示的問題,因爲他以前沒有準備到這些最最基礎的知識,沒有考慮過這個問題,因此被問到時竟一臉萌幣,回答的不是很好。這道題主要考的是對 Java 基礎知識的瞭解,有些同窗可能已經忘了。因此如今咱們一塊兒來分析下。java
在回答這個問題以前咱們先來看看什麼是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 就好了。cdn
因此上文提到的問題,對於開發人員來講安裝完JDK後就不須要再安裝JRE了。blog
另一個問題,既然如此,那麼在服務器上是否只安裝JRE就能夠了?
理論上是能夠的,可是有前提條件。
發佈到服務器上時全部文件都是編譯好的文件,包括JSP文件
後期不在服務器上直接修改(由於致使修改後的文件未從新編譯)
若是部署的項目都是編譯後從新部署,不在服務器上直接修改的話是能夠只安裝 JRE 的。
注意:若是存在未編譯的 Java 源文件,或者在服務器上修改源文件,服務器就須要安裝 JDK。
能夠編譯java文件,方便後期維護
保證JSP文件修改後穩定運行
綜合考慮,爲避免之後這樣那樣的麻煩事發生,服務器上仍是安裝JDK吧!畢竟項目後期維護纔是主要的事情。
有了以上的分析,相信面試官再問你這樣的問題你該知道怎麼回答了吧。