Java跨平臺特性的實(shí)現(xiàn)原理_第1頁
Java跨平臺特性的實(shí)現(xiàn)原理_第2頁
Java跨平臺特性的實(shí)現(xiàn)原理_第3頁
免費(fèi)預(yù)覽已結(jié)束,剩余1頁可下載查看

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、Java跨平臺特性的實(shí)現(xiàn)原理摘要:跨平臺是Java語言的重要特性,和普通高級語言源程序跨平臺不同Java語言的跨平臺是指目標(biāo)程序跨平臺。這種跨平臺特性使Java語言成為了目前使用最為廣泛的Internet應(yīng)用編程語言。本文介紹Java語言和其他高級語言在跨平臺特性上的區(qū)別,以及Java語言實(shí)現(xiàn)跨平臺特性的原理。關(guān)鍵詞:Java跨平臺Internet編程Java能夠成為目前使用最廣泛的一門Web程序設(shè)計(jì)語言,具備優(yōu)秀的跨平臺特性是一個(gè)重要的原因。本人在大學(xué)本科的軟件教學(xué)工作中發(fā)現(xiàn),很多具備一定程序設(shè)計(jì)基礎(chǔ)的本科學(xué)生對Java語言跨平臺特性的理解還比較模糊,對Java和普通高級編程語言跨平臺特性的

2、區(qū)別的認(rèn)識也不十分深刻。本文介紹Java和普通高級語言跨平臺特性的區(qū)別,闡述Java跨平臺特性的實(shí)現(xiàn)原理。1 Java的誕生、發(fā)展和特性20世紀(jì)中后期,計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)逐步成熟,并被應(yīng)用到科學(xué)研究、航天和軍工等各個(gè)領(lǐng)域,在此基礎(chǔ)上出現(xiàn)了Internet(國際互聯(lián)網(wǎng))。Internet把世界各地的不同結(jié)構(gòu)的計(jì)算機(jī)網(wǎng)絡(luò)、主機(jī)和個(gè)人計(jì)算機(jī)通過通信設(shè)施和通信協(xié)議互聯(lián)起來構(gòu)成國際互聯(lián)網(wǎng)絡(luò)。20世紀(jì)90年代初,在Internet的基礎(chǔ)上,又出現(xiàn)了WWW網(wǎng)絡(luò)(萬維網(wǎng))。WWW網(wǎng)是Internet提供的一種信息服務(wù),它為Internet用戶提供了統(tǒng)一的接口以訪問網(wǎng)絡(luò)上的各種信息和資源。WWW網(wǎng)用統(tǒng)一資源定位技術(shù)

3、(URL)實(shí)現(xiàn)全球信息的精確定位;用新的應(yīng)用層協(xié)議(HTTP)實(shí)現(xiàn)分布式信息共享;用超文本技術(shù)(HTML)實(shí)現(xiàn)信息之間的鏈接。這些技術(shù)使WWW網(wǎng)用戶能方便地訪問到Internet上的共享信息。隨著WWW應(yīng)用的快速增長,SUN公司的JamesGosling等人意識到需要一種面向WWW網(wǎng)的程序設(shè)計(jì)語言,于是他們把一種名叫Oak的編程語言加以改造并用于Web編程(WWW網(wǎng)絡(luò)編程),并與1995年5月23日正式更名為Java語言。Java語言一經(jīng)推出,就在Web編程領(lǐng)域取得了巨大的成功。此后的近20年Java語言蓬勃發(fā)展,并始終在Web編程領(lǐng)域占據(jù)主導(dǎo)地位。期間,Java語言的版本也從JDK1.0發(fā)展

4、到目前的JDK1.7。Java是一種跨平臺的、分布式的、面向?qū)ο蟮木幊陶Z言。Java語言本身的很多設(shè)計(jì)靈感起源于另一種應(yīng)用最為廣泛并且歷史悠久”的編程語言一一C+,所以,Java語言的語法格式和程序結(jié)構(gòu)與C+語言都非常相似,它借鑒了C+語言短小精悍、格式靈活的特點(diǎn)。但在語言的應(yīng)用領(lǐng)域和某些關(guān)鍵特性的側(cè)重點(diǎn)上Java和C+又具有本質(zhì)的不同。Iava拋棄了C+語言中的一些容易引發(fā)程序錯(cuò)誤的因素。例如Java語言中沒有指針”數(shù)據(jù)類型;只允許類的單繼承,而不允許多繼承等;和C+相比Java更加簡潔。和C+的另一區(qū)別是:Java是純粹的面向?qū)ο蟮木幊陶Z言,它不支持過程化的編程技術(shù),所以程序中也不包含任何

5、過程化的元素Java具有面向?qū)ο缶幊碳夹g(shù)抽象程度更高、可重用模塊粒度更大等優(yōu)勢。此外Java還具有分布式、多線程、解釋執(zhí)行和跨平臺等優(yōu)秀特性。目前的Internet上集成了多種異構(gòu)平臺,作為一門面向Internet應(yīng)用的編程語言,是否具備良好的跨平臺特性就顯得尤為重要。本文下面將重點(diǎn)討論Java的跨平臺特性。2 Java的跨平臺特性自上世紀(jì)中葉出現(xiàn)了電子數(shù)字計(jì)算機(jī)后,程序設(shè)計(jì)語言的發(fā)展也經(jīng)歷了幾個(gè)不同的階段。最早的時(shí)候程序員都是直接使用計(jì)算機(jī)指令編程,指令是可以被計(jì)算機(jī)硬件設(shè)備識別的二進(jìn)制編碼,計(jì)算機(jī)程序本質(zhì)上就是由各種指令構(gòu)成的一個(gè)集合。由于直接使用二進(jìn)制指令編程難度太大,所以于20世紀(jì)50

6、年代出現(xiàn)了匯編語言,匯編語言用一些具有含義的助記符代替了指令中的二進(jìn)制編碼形成匯編指令,程序員使用匯編指令編程的難度大大降低,編程效率得到提升。由于計(jì)算機(jī)指令和匯編語言都可以直接操作計(jì)算機(jī)的硬件,所以它們被統(tǒng)稱為低級語言。使用低級語言編程的優(yōu)點(diǎn)是程序指令可以直接操作計(jì)算機(jī)硬件設(shè)備,程序員可以針對特定硬件結(jié)構(gòu)的計(jì)算機(jī)對程序進(jìn)行優(yōu)化以提高執(zhí)行效率。但是用低級語言編程的缺點(diǎn)更為明顯,其一要求程序員必須能夠熟練運(yùn)用計(jì)算機(jī)指令系統(tǒng)中的各種不同的指令,程序員編程時(shí)不光要關(guān)注程序的核心邏輯,同時(shí)要求程序員掌握特定計(jì)算機(jī)的硬件結(jié)構(gòu),變成難度很高;其次,用低級語言編寫的程序在不同的硬件平臺上不具備可移植性。20

7、世紀(jì)60年代出現(xiàn)了高級編程語言,高級語言程序是由數(shù)量有限、容易理解的控制語句組成,程序員還可以使用具有特定含義的短語為程序中的存儲單元命名。高級語言中的控制語句只具有邏輯控制能力,而不能直接操作計(jì)算機(jī)硬件。程序員編寫的由高級語言控制命令組成的程序稱為源程序”由于計(jì)算機(jī)硬件只能識別二進(jìn)制指令,所以高級語言源程序中的語句必須被翻譯成機(jī)器指令后才能運(yùn)行,這步翻譯工作被稱為編譯”或解釋”是由被稱為編譯器”或解釋器”的特殊程序完成的。一種高級語言針對不同的硬件平臺會(huì)有不同的編譯器”或解釋器”它們可以把源程序中的控制語句翻譯成不同平臺上的機(jī)器指令。通常把經(jīng)編譯之后的程序稱為目標(biāo)程序”這種機(jī)制可以保證一個(gè)高

8、級語言源程序可在不同的硬件平臺上運(yùn)行,但在運(yùn)行之前需要使用特定平臺的編譯器重新編譯。這種跨平臺特性是源程序級別的跨平臺。和普通高級語言實(shí)現(xiàn)的源程序跨平臺不同Java語言的跨平臺是指目標(biāo)程序跨平臺。因?yàn)椴煌脚_的硬件結(jié)構(gòu)有可能不同,所以這種跨平臺聽上去是無法實(shí)現(xiàn)的。以下介紹Java目標(biāo)程序跨平臺的實(shí)現(xiàn)原理。3 Java跨平臺特性的實(shí)現(xiàn)原理高級語言源程序必須被編譯”或解釋”之后才能運(yùn)行,編譯和解釋的過程是有區(qū)別的。編譯是指由編譯器把一個(gè)高級語言源程序文件一次性翻譯成由機(jī)器指令組成的目標(biāo)程序文件。C+語言就是典型的編譯型高級語言。編譯過程如圖1所示解釋是指由解釋器把源程序文件中的控制語句逐條進(jìn)行翻譯

9、并運(yùn)行,翻譯一條運(yùn)行一條,在解釋過程中并不產(chǎn)生完整的目標(biāo)程序文件。BASIC語言是典型的解釋型高級語言。解釋和執(zhí)行過程如圖2所示。Java語言是解釋執(zhí)行的,但在執(zhí)行之前還需要編譯。Java程序編譯器先把Java源程序翻譯成一個(gè)完整的目標(biāo)程序,和其他編譯型高級語言不同,經(jīng)編譯之后的Java目標(biāo)程序并不是由特定平臺的計(jì)算機(jī)指令組成的,而是由被稱為字節(jié)碼”的中間代碼指令組成,所以目標(biāo)程序文件又被稱為“Java?節(jié)碼文件”字節(jié)碼文件必須由Java解釋器來解釋和運(yùn)行。在運(yùn)行字節(jié)碼文件時(shí),Java解釋器把其中的字節(jié)碼指令逐條翻譯成特定平臺的計(jì)算機(jī)指令并運(yùn)行。Java解釋器又被稱為Java虛擬機(jī)。任意的計(jì)算

10、機(jī)平臺只要安裝了Java解釋器,就可以運(yùn)行Java字節(jié)碼文件。利用這種機(jī)制Java實(shí)現(xiàn)了目標(biāo)程序跨平臺。Java的跨平臺特性也被形容為一次編譯,到處運(yùn)行”Java語言的編譯和解釋運(yùn)行過程如圖3所示。4結(jié)語通過以上幾節(jié)的介紹,我們知道:普通的高級編程語言(例如常用的C+語言)的跨平臺特性是指源程序級別的跨平臺,而Java語言的跨平臺指的是經(jīng)編譯所生成的目標(biāo)程序的跨平臺。Java編譯器編譯源程序生成目標(biāo)程序,組成這個(gè)目標(biāo)程序的并不是特定平臺的機(jī)器指令,而是被稱為“Java字節(jié)碼”的中間代碼指令;這種“Java字節(jié)碼”必須經(jīng)過Java解釋器的解釋后才能被轉(zhuǎn)換成特定平臺的機(jī)器指令,也就是說,對于不同的平臺,只要安裝了Java解釋器,就能夠解釋并

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論