Jdk、Jre Jvm的區別和聯絡
JDK(Java Development Kit)
JDK是Java開發工具包,包含JRE,在JDK的安裝目錄下有一個名為jre的目錄,裡面有兩個資料夾bin和lib,在這裡可以認為bin裡的就是jvm,lib中則是jvm工作所需要的類庫,而jvm和 lib和起來就稱為jre。
JDK是整個JAVA的核心,包括了Java執行環境JRE(Java Runtime Envirnment)、Java開發工具(javac/java/jdb等)和Java基礎的類庫(即Java
API )。其中的開發工具:編譯工具(javac.exe),打包工具(jar.exe)
JDK=JRE+JVM+其它 執行Java程式一般都要求使用者的電腦安裝JRE環境(Java Runtime Environment);沒有jre,java程式無法執行;而沒有java程式,jre就沒有用武之地。
Java Runtime Environment(JRE)
是執行基於Java語言編寫的程式所不可缺少的執行環境。也是通過它,Java的開發者才得以將自己開發的程式釋出到使用者手中,讓使用者使用。(即:JRE是面向Java程式的使用者,而不是開發者。)
JRE中包含了Java virtual machine(JVM),runtime class libraries和Java application launcher,這些是執行Java程式的必要元件。JRE是Java執行環境,並不是一個開發環境,所以沒有包含任何開發工具(如編譯器和偵錯程式),只是針對於使用Java程式的使用者。
JVM(java virtual machine)
就是我們常說的java虛擬機器,它是整個java實現跨平臺的最核心的部分,所有的java程式會首先被編譯為.class的類檔案,這種類檔案可以在虛擬機器上執行。也就是說class並不直接與機器的作業系統相對應,而是經過虛擬機器間接與作業系統互動,由虛擬機器將程式解釋給本地系統執行。只有JVM還不能成class的執行,因為在解釋class的時候JVM需要呼叫解釋所需要的類庫lib,而jre包含lib類庫。
JVM有自己完善的硬體架構,如處理器、堆疊、暫存器等,還具有相應的指令系統。JVM的主要工作是解釋自己的指令集(即位元組碼)並對映到本地的CPU的指令集或OS的系統呼叫。Java語言是跨平臺執行的,其實就是不同的作業系統,使用不同的JVM對映規則,讓其與作業系統無關,完成了跨平臺性。JVM對上的Java原始檔是不關心的,它關注的只是由原始檔生成的類檔案(class
file)。
下圖是JVM的原理:
相關文章
- JDK,JRE,JVM區別與聯絡JDKJVM
- JRE與JDK的區別與聯絡JDK
- JDK JRE JVM 的區別JDKJVM
- JDK和JRE的區別 .JDK
- jdk和jre的區別JDK
- JDK,JRE和JVMJDKJVM
- JDK、JRE和JVMJDKJVM
- JDK.JRE和JVMJDKJVM
- JRE 和 JDK 的區別詳解JDK
- jdk與jre的區別JDK
- JDK、JRE和JVM簡述JDKJVM
- JDK,JRE,JVMJDKJVM
- JDK JRE JVMJDKJVM
- SDK、JDK、JRE 和JVM 之間的關係JDKJVM
- tcp/ip和http的區別和聯絡TCPHTTP
- orcle pfile和spfile的區別和聯絡
- NET|Ref 和out 的區別和聯絡
- Instruction和Question的區別和聯絡Struct
- http、socket、tcp的區別和聯絡?HTTPTCP
- SCADA和PLC的區別聯絡
- Session和Cookie的聯絡與區別SessionCookie
- CGI與Servlet的區別和聯絡Servlet
- Session和Cookie的區別與聯絡SessionCookie
- 轉:IDOCBAPIRFC區別和聯絡API
- Oracle中User和Schema的區別和聯絡Oracle
- 詳解CALayer 和 UIView的區別和聯絡UIView
- Linux和Ubuntu的區別與聯絡LinuxUbuntu
- javaSE中的==和equals的聯絡與區別Java
- has、ohasd、crs、cluster區別和聯絡
- java-介面和抽象類的聯絡和區別。Java抽象
- 中斷和異常,陷阱的區別和聯絡
- JDK和JREJDK
- 程式和執行緒的區別與聯絡執行緒
- HDFS 塊和 Input Splits 的區別與聯絡
- NUMA,MPP和HADOOP的區別與聯絡Hadoop
- 並行和併發的區別與聯絡並行
- volatile和synchronized的區別與聯絡[轉]synchronized
- malloc free與new delete的區別和聯絡delete