Java的特點之一——與平台無關


    Java出現之前,C和C++是當時廣泛使用的編程語言。但是C和C++都有一個共同的缺點,那就是只能在特定的平台進行編譯。這里指的平台是由操作系統(OS)和處理器(CPU)構成的。C和C++源程序所在的特定平台對其源文件進行編譯、連接,生成當前平台的機器指令(平台的機器指令可以被該平台直接識別和執行),根據當前平台的機器指令生成可執行文件。那么,在任何與當前平台相同的平台上都可以運行這個可執行文件。但每個平台都會形成自己獨特的機器指令,相同的CPU和不同的操作系統所形成的平台的機器指令可能是不同的。假如電器的設備更換了,平台就不能保證程序能正確運行。這個時候可能需要修改源程序,並針對新的平台重新編譯源程序。而Java最大的優勢就是編寫的軟件能在所有的計算機上運行。之所以能做到這一點,是因為Java可以在計算機的操作系統之上再提供一個Java運行環境(Java Runtime Environment--JRE),該運行環境是由Java虛擬機(Java Virtual Machine--JVM)、類庫以及一些核心文件組成。Java虛擬機的核心是字節碼指令(字節碼指令可以被Java虛擬機直接識別和執行),字節碼指令不是機器指令,因此它不與特定的平台相關。而Java針對不同平台提供的Java虛擬機的字節碼指令是相同的,先看看Java程序的運行過程:

    Java語言提供的編譯器不針對特定的平台進行編譯,而是針對Java虛擬機編譯成字節碼(稱為“中間代碼”),字節碼被Java虛擬機(Java解釋器是Java虛擬機的一部分)解釋、運行。Java虛擬機將字節碼翻譯成本地計算機的機器指令,並將機器指令交給平台運行。

 

    上圖是本篇博客的整理。為了更方便清晰的理解,我們可以腦補一個劇場:維奇多去了英國留學,憑借流利的英語和英俊的外表,他認識了很多英國朋友。有一天,他遇到了一個充滿羅曼蒂克風情的法國美女。但很可惜,他不會法語,她不會英語,所以他們無法交流。橙汁是一個富二代,雖然他只會中文,但是他有錢,雇佣了一個萬能翻譯官,一起環游世界美滋滋呀無壓力呀。

    腦補完劇情,有沒有更好的幫助你理解呢?總之,只要平台提供了Java運行環境,用Java編寫的軟件就能在其上運行。

    本劇終。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM