首先伐厌,我們來看一下Java程序運行過程
? ? ? ? 由圖一所示,很明顯他與C/C++不同枯怖,C/C++語言都是直接編譯成針對特定平臺的機(jī)器碼注整。如果要跨平臺能曾,需要使用相應(yīng)的編譯器重新編譯。而Java源程序(.java)要先編譯成與平臺無關(guān)的字節(jié)碼文件(.class)肿轨,然后字節(jié)碼文件再解釋成機(jī)器碼運行(解釋是通過Java虛擬機(jī)來執(zhí)行的)寿冕。字節(jié)碼文件不再面向任何具體平臺,只面Java向虛擬機(jī)椒袍。Java虛擬機(jī)是可運行Java字節(jié)碼文件的虛擬計算機(jī)驼唱。不同平臺的虛擬機(jī)是不同的,但它們都提供了相同的接口驹暑。
????????因此玫恳,Java語言具有一次編譯辨赐,到處運行的特點。就是說編譯后的.class可以跨平臺運行京办,前提是該平臺具有相應(yīng)的Java虛擬機(jī)掀序。由于Java的跨平臺原理決定了其性能沒有C/C++高,所以Java性能比C/C++要低惭婿。