1. 程式人生 > >【轉載】jdk、jre、jvm等名詞解釋

【轉載】jdk、jre、jvm等名詞解釋

摘自網路。

JDK, JRE 和JVM是Java程式語言的核心概念。儘管它們看起來差不多,作為程式設計師我們也不怎麼關心這些概念,但是它們是不同的針對特定目的的產品。這是一道常見的java面試題,而本文則會一一解釋這些概念並給出它們之間的區別。

Java 開發工具包 (JDK)

Java開發工具包是Java環境的核心元件,並提供編譯、除錯和執行一個Java程式所需的所有工具,可執行檔案和二進位制檔案。JDK是一個平臺特定的軟體,有針對Windows,Mac和Unix系統的不同的安裝包。可以說JDK是JRE的超集,它包含了JRE的Java編譯器,偵錯程式和核心類。目前JDK的版本號是1.7,也被稱為Java 7。

Java虛擬機器(JVM)

JVM是Java程式語言的核心。當我們執行一個程式時,JVM負責將位元組碼轉換為特定機器程式碼。JVM也是平臺特定的,並提供核心的Java方法,例如記憶體管理、垃圾回收和安全機制等。JVM 是可定製化的,我們可以通過Java 選項(java options)定製它,比如配置JVM 記憶體的上下界。JVM之所以被稱為虛擬的是因為它提供了一個不依賴於底層作業系統和機器硬體的介面。這種獨立於硬體和作業系統的特性正是Java程式可以一次編寫多處執行的原因。

Java執行時環境(JRE)

JRE是JVM的實施實現,它提供了執行Java程式的平臺。JRE包含了JVM、Java二進位制檔案和其它成功執行程式的類檔案。JRE不包含任何像Java編譯器、偵錯程式之類的開發工具。如果你只是想要執行Java程式,你只需安裝JRE即可,沒有安裝JDK的必要。

JDK, JRE 和JVM的區別

  • JDK是用於開發的而JRE是用於執行Java程式的。
  • JDK和JRE都包含了JVM,從而使得我們可以執行Java程式。
  • JVM是Java程式語言的核心並且具有平臺獨立性。

即時編譯器(JIT)

有時我們會聽到JIT這個概念,並說它是JVM的一部分,這讓我們很困惑。JIT是JVM的一部分,它可以在同一時間編譯類似的位元組碼來優化將位元組碼轉換為機器特定語言的過程相似的位元組碼,從而將優化位元組碼轉換為機器特定語言的過程,這樣減少轉換過程所需要花費的時間。

2013年Oracle又釋出了Server JRE,介於JDK和JRE之間。只執行tomcat, weblogic等的伺服器裝Server JRE就行。