1. 程式人生 > >JDK,JRE,JVM區別與聯絡(轉載)

JDK,JRE,JVM區別與聯絡(轉載)

JDK : Java Development ToolKit(Java開發工具包)。 JDK是整個JAVA的核心,包括了Java執行環境(Java Runtime Envirnment),一堆Java工具(javac/java/jdb等)和Java基礎的類庫(即Java API 包括rt.jar)。

JDK有以下三種版本: J2SE,standard edition,標準版,是我們通常用的一個版本 J2EE,enterpsise edtion,企業版,使用這種JDK開發J2EE應用程式 J2ME,micro edtion,主要用於移動裝置、嵌入式裝置上的java應用程式

我們常常用JDK來代指Java API,Java API是Java的應用程式介面,其實就是前輩們寫好的一些java Class,包括一些重要的語言結構以及基本圖形,網路和檔案I/O等等 ,我們在自己的程式中,呼叫前輩們寫好的這些Class,來作為我們自己開發的一個基礎。當然,現在已經有越來越多的效能更好或者功能更強大的第三方類庫供我們使用。

JRE:Java Runtime Enviromental(java執行時環境)。 也就是我們說的JAVA平臺,所有的Java程式都要在JRE下才能執行。包括JVM和JAVA核心類庫和支援檔案。與JDK相比,它不包含開發工具——編譯器、偵錯程式和其它工具。

JVM:Java Virtual Mechinal(JAVA虛擬機器)。 JVM是JRE的一部分,它是一個虛構出來的計算機,是通過在實際的計算機上模擬模擬各種計算機功能來實現的。JVM有自己完善的硬體架構,如處理器、堆疊、暫存器等,還具有相應的指令系統。JVM 的主要工作是解釋自己的指令集(即位元組碼)並對映到本地的 CPU 的指令集或 OS 的系統呼叫。Java語言是跨平臺執行的,其實就是不同的作業系統,使用不同的JVM對映規則,讓其與作業系統無關,完成了跨平臺性。JVM 對上層的 Java 原始檔是不關心的,它關注的只是由原始檔生成的類檔案( class file )。類檔案的組成包括 JVM 指令集,符號表以及一些補助資訊。 關於JVM的記憶體結構請看這篇文章:

Java虛擬機器的記憶體組成以及堆記憶體介紹

下圖很好的表面了JDK,JRE,JVM三者間的關係: 這裡寫圖片描述