介紹

C/C++語言都直接編譯成針對特定平臺機器碼。如果要跨平臺,需要使用相應的編譯器重新編譯。

Java源程式(.java)要先編譯成與平臺無關的位元組碼檔案(.class),然後位元組碼檔案再解釋成機器碼執行。解釋是通過

Java虛擬機器來執行的。

位元組碼檔案不面向任何具體平臺,只面向虛擬機器。

Java虛擬機器是可執行Java位元組碼檔案的虛擬計算機。不同平臺的虛擬機器是不同的,但它們都提供了相同的介面。

Java語言具有一次編譯,到處執行的特點。就是說編譯後的.class可以跨平臺執行,前提是該平臺具有相應的Java虛

擬機。但是效能比C/C++要低。

Java的跨平臺原理決定了其效能沒有C/C++高

原理

  • 一次編譯,到處執行
  • 編譯器的作用,將檔案編譯成Class檔案
  • 虛擬機器的作用:將位元組碼檔案class我就愛你解釋成對應平臺機器的機器碼並且執行
  • Java虛擬機器可以跨所有平臺嗎?只有提供並安裝了相應的虛擬機器,就可以跨該平臺
  • 虛擬機器與直譯器的關係: 直譯器是虛擬機器的一個重要組成部分
  • Java語言的執行要經過編譯和解釋兩個階段