深入了解JVM 、JRE、JDK三者的聯系
JVM(JavaVirtualMachine)是Java虛擬機。所謂“虛擬機”顧名思義就是模擬出來的東西;JavaRuntimeEnvironment(Java運行環境)。就是可以運行Java程序的地方;而JavaDevelopmentToolKit是Java開發工具包。
本文將介紹JVM JRE JDK,這些東西到底是什么?相信通過本文,大家能對這些知識能有更進一步的了解。
JVM JRE JDK,這些東西到底是什么?
我們在安裝好JDK后就可以想象成我們已經買了一臺安裝好軟件的新的電腦。
JVM:
JavaVirtualMachine(Java虛擬機)。所謂“虛擬機”顧名思義就是模擬出來的東西。就像是我們在用電腦看電視,但是電腦里并沒有像電視機里面一樣的硬件支持,但是我們仍然可以從電腦里接受電視臺的節目。那是因為我們編寫了一個可以模擬電視機硬件工作的軟件運行在電腦的平臺上面的原因。同樣JVM就是模擬了電腦的硬件,它同樣有著像CPU一樣可以執行代碼的功能。它的實現具體有:指令集寄存器組類文件格式棧垃圾收集堆內存區。可以把它理解成是專門用來執行Java程序的一臺機器。也就是說JVM提供了Java執行的硬件平臺。JVM上執行的代碼都存放在.CLASS文件中。JVM只執行字節碼文件。
JRE:
JavaRuntimeEnvironment(Java運行環境)。就是可以運行Java程序的地方。就像是我們要在電腦上運行一個視頻軟件的時候必須在Windos或者是Linux等操作系統上一樣。那我們就可以把它看做是一個操作系統。也就是說JRE提供了Java執行的軟件平臺。在運行Java的過程中除了需要有JVM執行Java代碼這個動作外,還需要JavaAPI(ApplicationProgrammingInterface,應用編程接口)說簡單的就是“類庫”。Java程序在運行中沒有這些API是不行的,所以JRE包含JVM。
JDK:
JavaDevelopmentToolKit(Java開發工具包)。我們有了硬件和軟件兩個平臺后就可以做我們自己想做的事情了。JDK就是我們用來做事情的工具,它包括JRE還有其他工具。我們所說版本的不同,也就是說它里面的工具有差異。就像是你不同的工具箱里放著不同的工具一樣。舉個例子:最常用的一個就是javac,它是把.java的文件翻譯成.class文件的工具。然后讓JVM來執行.class文件中的字節碼。(就像電腦的CPU只認識0或1的道理)
如果一臺計算機的需求只是運行Java程序,而不是去編寫Java程序的時候,它只需要安裝JRE就可以了。現在大家知道JVMJREJDK,這些東西到底是什么了吧。
【編輯推薦】
- 深入理解JRE和JVM的區別及聯系
- Tomcat配置JVM參數巧妙方法
- JVM基礎:解析JVM分代垃圾回收策略
- JVM for Linux JIT診斷技術簡介
- 巧解IBM JVM for Linux onPOWER性能調優