Java語法教程 Java開發環境 JVM、JRE、JDK

要想開發Java程序,就需要知道什麼是JVM、JRE以及JDK。JVM是運行Java程序的核心,JRE是支持Java程序運行的環境,而JDK是Java開發的核心,下面我們分別具體介紹它們以及它們之間的關係。

 

1.JVM(Java Virtual Machine,Java虛擬機)

Java虛擬機簡稱JVM,是一個抽象的計算機,和實際的計算機一樣,它具有指令集並使用不同的存儲區域(內存中不同的區域),JVM也就是Java程序的解釋器。不同平臺上的JVM也是不同的,但是它們都提供了相同的接口,JVM是Java程序跨平臺特性的關鍵元素,只要爲不同平臺實現了相應的JVM,編譯後的Java字節碼就可以在該平臺上運行。顯然,相同的字節碼文件想要直接在不同的平臺上運行是不可能的(因爲不同的平臺有不同的指令集),只有通過中間的轉換器(解釋器)纔可以實現,JVM就是這個轉換器,在不同平臺上的JVM將同一份字節碼文件轉換爲不同平臺上相應的機器指令。

Sun(Oracle)公司制定的Java虛擬機規範在技術上規定了JVM的統一標準,及具體定義了JVM中的指令集、寄存器、類文件的格式、棧、垃圾回收堆和存儲區。Sun公司制定的這些規範的目的就是爲了提供統一的標準,最終實現Java程序的平臺無關性。

 

2.JRE(Java Runtime Environment,Java運行時環境)

Java運行時環境簡稱JRE,是運行Java應用程序所必須的環境的集合,其中包含了JVM虛擬機實現以及Java核心類庫支持文件。Java核心類庫是jre\lib\rt.jar這個文件。包括了Jave SE平臺的所有類庫。類庫中主要的包如下:

●  java.lang:這個是系統的基礎類,比如Object、String等類都是這裏面的,這個包是唯一一個不需要引入(import)就可以使用的包。

●  java.io:這裏面是所有輸入輸出有關的類,比如文件操作等。

●  java.nio:爲了完善io包中的功能,提高io包中性能而編寫的一個新包(但不是爲了替代io包)。

●  java.net:這裏面是與網絡有關的類,比如URL、socket等。

●  java.util:這個是系統工具類,其中包括了主要的集合如Collection、List和Map等。

●  java.sql:這個是數據庫操作的類,其中包括Connection、Statement等類。

如果僅僅需要運行Java程序,那麼計算機中只需要安裝JRE即可。

 

3.JDK(Java Development Kit,Java開發工具包)

顧名思義,JDK就是用來開發Java應用程序的軟件包,JDK中包含了JRE以及JVM實現。JDK是Sun公司爲了方便開發Java程序而提供的,JDK中提供了常用的編程所需要的工具庫,因此Java開發者必須安裝JDK,在JDK的基礎上才能進行Java程序的開發。JDK中包含的一些常用的基本組件介紹如下:

●  javac:編譯器,將Java源代碼轉換成字節碼文件。

●  java:運行編譯後的字節碼文件(解釋器)。

●  jar:打包工具,將相關的類文件打包成一個.jar文件。

●  javadoc:文檔生成器,從源碼中的文檔註釋提取文檔。

我們最後來總結一下JVM、JRE和JDK之間的關係,JDK中包含JRE,JRE中包含JVM,如圖所示:

cc1d1b6a832143e783d779ce3fd3c743.png

歡迎工作一到五年的Java工程師朋友們加入JavaQQ羣:219571750,羣內提供免費的Java架構學習資料(裏面有高可用、高併發、高性能及分佈式、Jvm性能調優、Spring源碼,MyBatis,Netty,Redis,Kafka,Mysql,Zookeeper,Tomcat,Docker,Dubbo,Nginx等多個知識點的架構資料)合理利用自己每一分每一秒的時間來學習提升自己,不要再用"沒有時間“來掩飾自己思想上的懶惰!趁年輕,使勁拼,給未來的自己一個交代!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章