Java跨平臺原理淺析
使用Java語言編寫應(yīng)用程序***的優(yōu)點在于“一次編譯,處處運行”,然而這并不是說所有的Java程序都具有Java跨平臺的特性,事實上,相當一部分的Java程序是不能在別的操作系統(tǒng)上正確運行的,
Java跨平臺的原理
Java字節(jié)碼的兩種執(zhí)行方式
1、即時編譯方式:解釋器先將字節(jié)碼編譯成機器碼,然后再執(zhí)行該機器碼。
2、解釋執(zhí)行方式:解釋器通過每次解釋并執(zhí)行一小段代碼來完成Java字節(jié)碼程序的所有操作。
通常采用的是第二種方法。由于JVM規(guī)格描述具有足夠的靈活性,這使得將字節(jié)碼翻譯為機器代碼的工作具有較高的效率。對于那些對運行速度要求較高的應(yīng)用程序,解釋器可將Java字節(jié)碼即時編譯為機器碼,從而很好地保證了Java代碼的可移植性和高性能。
Java程序執(zhí)行與C/C++程序執(zhí)行的對比分析
如果把Java源程序想象成我們的C++源程序,Java源程序編譯后生成的字節(jié)碼就相當于C++源程序編譯后的80x86的機器碼(二進制程序文件),JVM虛擬機相當于80x86計算機系統(tǒng),Java解釋器相當于80x86CPU。在80x86CPU上運行的是機器碼,在Java解釋器上運行的是Java字節(jié)碼。
Java解釋器相當于運行Java字節(jié)碼的“CPU”,但該“CPU”不是通過硬件實現(xiàn)的,而是用軟件實現(xiàn)的。Java解釋器實際上就是特定的平臺下的一個應(yīng)用程序。只要實現(xiàn)了特定平臺下的解釋器程序,Java字節(jié)碼就能通過解釋器程序在該平臺下運行,這是Java跨平臺的根本。當前,并不是在所有的平臺下都有相應(yīng)Java解釋器程序,這也是Java并不能在所有的平臺下都能運行的原因,它只能在已實現(xiàn)了Java解釋器程序的平臺下運行。
【編輯推薦】