1. 程式人生 > 程式設計 >java編譯器和JVM的區別

java編譯器和JVM的區別

Java虛擬機器(JVM)是可執行Java程式碼的假想計算機。只要根據JVM規格描述將直譯器移植到特定的計算機上,就能保證經過編譯的任何Java程式碼能夠在該系統上執行。java編譯器把java編譯成位元組碼,也就是.class檔案,然後JVM給編譯成的位元組碼提供執行環境。java的原始碼是無法直接在JVM上執行的。

1、java編譯器

Java語言寫的源程式通過Java編譯器,編譯成與平臺無關的‘位元組碼程式'(.class檔案,也就是0,1二進位制程式),然後在OS之上的Java直譯器中解釋執行。 也相當與 注:JVM(java虛擬機器)包括直譯器,不同的JDK虛擬機器是相同的,直譯器不同。

2、JVM-java虛擬機器

JVM:是java的核心和基礎,在java編譯器和os平臺之間的虛擬處理器。它是一種利用軟體方法實現的抽象的計算機基於下層的作業系統和硬體平臺,可以在上面執行java的位元組碼程式。java編譯器只要面向JVM,生成JVM能理解的程式碼或位元組碼檔案。Java原始檔經編譯成位元組碼程式,通過JVM將每一條指令翻譯成不同平臺機器碼,通過特定平臺執行。

JVM執行程式的過程: I.載入。class檔案 II.管理並分配記憶體 III.執行垃圾收集 JRE(java執行時環境)由JVM構造的java程式的執行環境編譯時執行時。

3、JVM有自己完善的硬體架構

如處理器、堆疊(Stack)、暫存器等,還具有相應的指令系統(位元組碼就是一種指令格式)。JVM遮蔽了與具體作業系統平臺相關的資訊,使得Java程式只需要生成在Java虛擬機器上執行的目的碼(位元組碼),就可以在多種平臺上不加修改地執行。JVM是Java平臺無關的基礎。JVM負責執行位元組碼:JVM把每一條要執行的位元組碼交給直譯器,翻譯成對應的機器碼,然後由直譯器執行。JVM解釋執行位元組碼檔案就是JVM操作Java直譯器進行解釋執行位元組碼檔案的過程。

到此這篇關於java編譯器和JVM的區別的文章就介紹到這了,更多相關java編譯器和JVM有什麼區別內容請搜尋我們以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援我們!