田亮
(杭州師范大學(xué)錢江學(xué)院,浙江 杭州 310012)
平臺無關(guān)是指Java能運行于不同的平臺。Java引進虛擬機原理,并運行于虛擬機,實現(xiàn)不同平臺的Java接口之間。使用Java編寫的程序能在世界范圍內(nèi)共享。Java的數(shù)據(jù)類型與機器無關(guān),Java虛擬機(Java Virtual Machine)是建立在硬件和操作系統(tǒng)之上,實現(xiàn)Java二進制代碼的解釋執(zhí)行功能,提供于不同平臺的接口的。
Java的編程類似C++,學(xué)習(xí)過C++的讀者將很快掌握Java的精髓。Java舍棄了C++的指針對存儲器地址的直接操作,程序運行時,內(nèi)存由操作系統(tǒng)分配,這樣可以避免病毒通過指針侵入系統(tǒng)。Java對程序提供了安全管理器,防止程序的非法訪問。
Java吸取了C++面向?qū)ο蟮母拍?,將?shù)據(jù)封裝于類中,利用類的優(yōu)點,實現(xiàn)了程序的簡潔性和便于維護性。類的封裝性、繼承性等有關(guān)對象的特性,使程序代碼只需一次編譯,然后通過上述特性反復(fù)利用。
Java建立在擴展TCP/IP網(wǎng)絡(luò)平臺上。庫函數(shù)提供了用HTTP和FTP協(xié)議傳送和接受信息的方法。這使得程序員使用網(wǎng)絡(luò)上的文件和使用本機文件一樣容易。
Java致力于檢查程序在編譯和運行時的錯誤。類型檢查幫助檢查出許多開發(fā)出現(xiàn)的錯誤。Java自己操縱內(nèi)存減少了內(nèi)存出錯的可能性。Java還實現(xiàn)了真數(shù)組,避免了覆蓋數(shù)據(jù)的可能,這些功能特征大大提高了開發(fā)Java應(yīng)用程序的周期。并且Java還提供了Null指針檢測、數(shù)組邊界檢測、異常出口、Byte code校驗等功能。
Java技術(shù)自1995年問世以來,在我國的應(yīng)用和開發(fā)也得到了迅速普及,總體來看,這些應(yīng)用主要集中于企業(yè)應(yīng)用開發(fā)。據(jù)有關(guān)單位調(diào)查顯示,從開發(fā)領(lǐng)域的分布情況上看Web開發(fā)占了一半以上,為57.9%,JavaME移動或嵌入式應(yīng)用占15%,C/S應(yīng)用占11.7%,系統(tǒng)編程占15.4%。近30%的開發(fā)者用Java從事C/S應(yīng)用或系統(tǒng)級應(yīng)用的開發(fā)。在桌面應(yīng)用上,盡管Java在桌面GUI方面尚有不盡如人意之處,但仍然有很多開發(fā)者用來開發(fā)運行在多種操作系統(tǒng)平臺上的桌面應(yīng)用。具體應(yīng)用在如下幾個領(lǐng)域。
由于 Sun、IBM、Oracle、BEA 等國際廠商相繼推出各種基于Java技術(shù)的應(yīng)用服務(wù)器以及各種應(yīng)用軟件,帶動了Java在金融、電信、制造等領(lǐng)域日益廣泛的應(yīng)用。如清華大學(xué)計算機系利用Java、XML和Web技術(shù)研制開發(fā)了多個軟件平臺,東方科技的Tong Web、金碟的Apusic、中創(chuàng)的Inforweb等J2EE應(yīng)用服務(wù)器及和佳ERP和寶信ERP等ERP產(chǎn)品,已在許多企業(yè)得到應(yīng)用。
東方科技、金碟、中創(chuàng)等開發(fā)的J2EE應(yīng)用服務(wù)器在電子政務(wù)及辦公自動化中也得到應(yīng)用:如金碟的Apusic在民政部、廣東省市工商局應(yīng)用;東軟電子政務(wù)架構(gòu)EAP平臺在社會保險、公檢法、稅務(wù)系統(tǒng)得到應(yīng)用;中創(chuàng)的Inforweb等Infor系列中間件產(chǎn)品在國家海事局、政府機關(guān)、銀行等金融系統(tǒng)應(yīng)用;基于Java平臺開發(fā)的國產(chǎn)化集成辦公軟件"Office"也已在一些省市政府部門得到應(yīng)用。
無線設(shè)備、通信終端、醫(yī)療設(shè)備、信息家電(如數(shù)字電視、機頂盒、電冰箱)、汽車電子設(shè)備等是今年以來比較熱門的Java應(yīng)用領(lǐng)域。在這方面的應(yīng)用有中國聯(lián)通CDMA 1X網(wǎng)絡(luò)中基于Java技術(shù)的無線數(shù)據(jù)增值服務(wù)。
在輔助教學(xué)方面,東南大學(xué)與中興通訊公司開發(fā)了遠程教學(xué)系統(tǒng),用于本地網(wǎng)上教學(xué)、課后學(xué)習(xí)和異地遠程教育,清華大學(xué)用Java進行了"計算機軟件基礎(chǔ)課"教學(xué)改革,分析研究Java教學(xué)軟件的漢化方案,電子科技大學(xué)應(yīng)用Java RMI技術(shù)進行遠程教育,西安電力高等專科學(xué)校采用Java技術(shù),開發(fā)了交互式電站仿真系統(tǒng),實現(xiàn)電站鍋爐仿真、鍋爐膛火焰仿真,為實現(xiàn)網(wǎng)上仿真進行有益探索。
3.1 政府主管部門要把Java技術(shù)及應(yīng)用作為落實“十二五”軟件及信息產(chǎn)業(yè)發(fā)展規(guī)劃的重要環(huán)節(jié),繼續(xù)支持開發(fā)有自主版權(quán)的軟件產(chǎn)品,支持建立Java技術(shù)產(chǎn)品評測中心,加強對相關(guān)產(chǎn)品的質(zhì)量監(jiān)管。
3.2 各行業(yè)主管部門及行業(yè)協(xié)會應(yīng)積極組織軟件企業(yè)開發(fā)基于Java的行業(yè)應(yīng)用軟件,有條件的可以建立行業(yè)軟件組件庫,這是防止低水平重復(fù)開發(fā),加快國產(chǎn)軟件商品化、產(chǎn)業(yè)化的有效辦法。
3.3 通過學(xué)會、協(xié)會與有關(guān)企業(yè)合作,繼續(xù)組織各種類型的Java技術(shù)合作及科普活動。
3.4 建立Java社區(qū)及Java網(wǎng)站,采用多種途徑加強Java的宣傳教育培訓(xùn)與人才培養(yǎng)。
4.1 速度。JAVA的執(zhí)行速度在JDK1.4的時候達到了這樣一個水平,就是對于一個一般水平的開發(fā)者來說,C++程序已經(jīng)不再比對等的JAVA程序跑得更快了。隨后的JDK 5.0和6.0進一步提高了執(zhí)行性能,由不同的組織舉行的多項評測結(jié)果表明,JAVA與C語言的整體執(zhí)行效率差距在一倍以內(nèi),也就是說,素以速度著稱、并且為了速度放棄了很多東西的C語言,現(xiàn)在比裝備齊全的JAVA只快不到一倍了。這還不算,如果考慮到新的計算環(huán)境,C語言的速度優(yōu)勢有可能僅僅是一個錯覺。因為,世界上只有很少的人有能力在多CPU計算平臺上用C語言寫出又快又正確的大程序,在這些人中間,又只有很少的人有能力用C語言寫出一個在大型的、異構(gòu)的網(wǎng)絡(luò)環(huán)境下能夠充分發(fā)揮各節(jié)點計算能力的大規(guī)模并行程序。
4.2 功能。C語言調(diào)試錯誤時間很長,特別是內(nèi)存方面的錯誤。大部分用C寫的上規(guī)模的軟件都存在一些內(nèi)存方面的錯誤,需要花費大量的時間把產(chǎn)品穩(wěn)定下來。這還沒有把安全方面的缺陷考慮在內(nèi),現(xiàn)在大部分的開發(fā)者在代碼安全方面的知識都很薄弱,安全漏洞在代碼中相當普遍,而在C語言中,這一不足格外明顯。最大的挑戰(zhàn)或許得說是并發(fā)問題了,并發(fā)是一個很復(fù)雜的問題,需要在相當高的抽象層面上解決,而C語言的抽象機制過于簡單,提供不了高層的抽象,因此在開發(fā)者只能從一些"并發(fā)原語"出發(fā)去構(gòu)造并發(fā)程序,這跟用鉛筆刀鋸大樹沒什么分別,直截了當?shù)卣f,大部分C程序員根本沒有能力編寫高效無缺陷的并發(fā)程序。用C語言寫單機、單線程的,不會遭到外界攻擊的,在時間預(yù)算上沒有什么壓力,而且用戶能夠忍受一個很長的產(chǎn)品穩(wěn)定期的應(yīng)用程序方面非常有經(jīng)驗。但是,市場環(huán)境和計算環(huán)境已經(jīng)完全變化。面對更復(fù)雜的計算環(huán)境,用C語言來編寫高質(zhì)量的大規(guī)模軟件,是只有真正的專家團隊才能完成的工作。相比之下,JAVA在抽象機制、基礎(chǔ)設(shè)施、安全和并發(fā)方面,與C語言對比,有優(yōu)勢。
[1]林勝利,路宗強,王坤茹等.Java智能卡開發(fā)關(guān)鍵技術(shù)與實例[M].北京.中國鐵道出版社.2006.
[2]李卓玲.Java程序設(shè)計實用教程[M].大連:大連理工大學(xué)出版社,2003.