Java編譯過程、c/c++編譯過程區別

1、Java編譯過程與c/c++編譯過程不同

c/c++編譯過程:

當C編譯器編譯生成一個對象的代碼時,該代碼是爲在某一特定硬件平臺運行而生成的。因此在編譯過程中,編譯程序通過查表將所有對符號的引用轉換爲特定的內存偏移量,以保證程序運行。

Java編譯過程:

Java編譯器卻不將對變量和方法的引用編譯爲數值引用,也不確定程序執行過程中的內存佈局,而是將些符號引用信息保留在字節碼中,由解釋器在運行過程中創立內存佈局,然後再通過查表來確定一個方法所在的地址,這樣就有效地保證了java的可移植性和安全性。

2、區別總結:

1. Java的編譯只會生成字節碼文件,而不會生成彙編(更不會到機器語言)。Java程序運行時,字節碼文件會裝載入java虛擬機,虛擬機實時將字節碼“翻譯”成機器指令來運行。java在不同平臺上實現虛擬機,針對虛擬機編譯就可以實現代碼可移植性。

2. C語言代碼編譯成的是機器碼,通常不能在不同指令系統的機器上運行。c代碼的編譯一般是直接針對硬件的

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