java真的能跨平臺嗎?

 

先給個簡單的說明:
java運行時是在java的虛擬機上進行的,虛擬機則運行於操作系統,所以java可以跨平臺運行
   java          java         java
java虛擬機       java虛擬機        java虛擬機
windows系統       unix系統          蘋果系統



java跨平臺原理:

Java字節碼的兩種執行方式
      1、即時編譯方式:解釋器先將字節碼編譯成機器碼,然後再執行該機器碼。   
      2、解釋執行方式:解釋器通過每次解釋並執行一小段代碼來完成Java字節碼程序的所有操作。  
 通常採用的是第二種方法。由於JVM規格描述具有足夠的靈活性,這使得將字節碼翻譯爲機器代碼的工作具有較高的效率。對於那些對運行速度要求較高的應用程序,解釋器可將Java字節碼即時編譯爲機器碼,從而很好地保證了Java代碼的可移植性和高性能。

Java程序執行與C/C++程序執行的對比分析
             如果把Java源程序想象成我們的C++源程序,Java源程序編譯後生成的字節碼就相當於C++源程序編譯後的80x86的機器碼(二進制程序文件),JVM虛擬機相當於80x86計算機系統,Java解釋器相當於80x86CPU。在80x86CPU上運行的是機器碼,在Java解釋器上運行的是Java字節碼。
             Java解釋器相當於運行Java字節碼的“CPU”,但該“CPU”不是通過硬件實現的,而是用軟件實現的。Java解釋器實際上就是特定的平臺下的一個應用程序。只要實現了特定平臺下的解釋器程序,Java字節碼就能通過解釋器程序在該平臺下運行,這是Java跨平臺的根本。當前,並不是在所有的平臺下都有相應Java解釋器程序,這也是Java並不能在所有的平臺下都能運行的原因,它只能在已實現了Java解釋器程序的平臺下運行。

 

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