啥叫Native Code

Native Code — 本機代碼

已被編譯爲特定於處理器的機器碼的代碼。
這些代碼可以直接被虛擬機執行。
與字節碼的區別:虛擬機是一個把通用字節碼轉換成用於特定處理器的本地代碼的程序

本地代碼(native code)是計算機編程(代碼),編譯用來運行一個特殊的處理器(如英特爾x86級的處理器)和它的特殊指令集。如果同一個程序在不同的處理器上執行的話軟件就必須能夠模擬出舊的處理器的指令。這種情況下,同一個程序是在模擬模式下運行的,這樣就會導致它比在本機模式下運行速度慢。(這個程序可以重寫並且重新編譯這樣就可以用新的處理器執行本機模式了。)

本地代碼也可以與字節碼區分開來(有時候叫做編譯代碼),這種代碼可以在虛擬機上運行(比如JAVA虛擬機)。虛擬機是一個把通用字節碼轉換成用於特定處理器的本地代碼的程序。微軟的.NET編譯器產生的就是字節碼微軟叫它作中間語言)。Java字節碼和微軟的中間語言都能在執行前被即時編譯器編譯成高性能的本機代碼。

Java程序編譯執行過程

java編譯器將源文件(.java)編譯成機器碼(.class)。然後java虛擬機再將這些機器碼解釋成爲本地具體平臺可執行的指令集。

爲何說Java是解釋性語言

它與C++相比有何不同?

  • C++編譯器是將源代碼一次性地直接編譯鏈接成本地可執行的本地代碼。即C++編譯好的程序不需要任何其他環境,可直接執行。
  • Java編譯器只是將源代碼編譯成通用字節碼,運行需要JVM的支持,JVM將字節碼再轉換成本地可執行的本地代碼。它是邊翻譯字節碼邊執行,故而稱爲解釋器。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章