1. 程式人生 > >Java執行機制

Java執行機制

一般計算機高階程式語言的執方式分為:編譯型 、解釋型。

編譯型:

              這種語言一般使用專門的編譯器,針對特定的平臺來將程式碼一次性編譯成可以被該平臺硬體執行的機械碼,並且把該編譯過來的機械碼包裝成一個可以執行的程式,這個過程就是編譯。編譯生成的可以執行的程式可以脫離開發環境,在特定的平臺上獨立執行。

              這種編譯型高階程式語言,不能跨平臺,但是編譯出來的程式具有高效率。

C、C++等都是這種語言。

解釋型:

              該語言和編譯型語言的區別在與,他不是一次性編譯程式碼,而是需要一個專門的直譯器來對源程式逐行解釋成機械程式碼並立即執行的語言,而且每次執行都需要編譯一次,所以該語言的效率比起編譯型語言效率要低,而且不能脫離直譯器執行。不過就是因為他依靠與直譯器,所以該語言跨平臺比較容易。這種語言的程式移植起來很方便。

Java語言屬於那種語言?

              答:Java既不是編譯型也不是解釋型。

              因為java程式的執行過程中,既需要編譯,也需要解釋。Java語言編寫的程式需要經過編譯成一種與平臺無關的位元組碼“.class檔案”。這種class檔案不是可執行的檔案,它同時又需要java特定的直譯器來進行解釋執行。


從上圖就可以看出來,java語言的直譯器就是JVM了,它是負責來解釋執行class檔案的java虛擬機器,不同平臺上面的JVM向編譯器提供相同的程式設計介面,而編譯器只需要面向虛擬機器就可以了。在一些虛擬機器中,還會將虛擬機器的程式碼轉化成特定系統的機器碼執行,從而提高效率。