陳樹峰
(杭州國際服務(wù)工程學(xué)院,浙江 杭州 310000)
1995年5月,sun公司正式發(fā)布了Java編程語言。在此之前的兩個(gè)版本分別時(shí)alpha盒beta。Java平臺(tái)第一次正式發(fā)布的開發(fā)工具套件盒api叫做Java開發(fā)工具(Java Development Kit,JDK)。自從 1995 年以來,Java語言的使用者以一個(gè)客觀的速度在增長。當(dāng)?shù)谝粋€(gè)Java平臺(tái)推出后,許多流行的web瀏覽器廠商迅速為其瀏覽器添加了內(nèi)置的1.0jvm來支持applet。
1997年,sun公司推出了1.1版本。這個(gè)版本在Java開發(fā)語言中增添了許多特性,尤其突出的時(shí),對于類集的補(bǔ)充和修改,最后形成了Java api。雖有,sun又發(fā)布了該版本的Javabean標(biāo)準(zhǔn)規(guī)范。幾個(gè)月之后,眾多的流行web瀏覽器開發(fā)商迅速的升級(jí)了他們內(nèi)置的jvm,以便和1.1版本兼容。2009年04月20日,oracle(甲骨文)宣布收購 sun。
2.1 應(yīng)用程序能夠獨(dú)立運(yùn)行在任何規(guī)模的計(jì)算機(jī)上,他可以是大型應(yīng)用軟件,也可以是簡單的小型應(yīng)用程序。它們既可以通過命令行運(yùn)行,也可通過圖形用戶界面運(yùn)行。一個(gè)應(yīng)用程序是否包含連接數(shù)據(jù)庫、網(wǎng)絡(luò)或其它應(yīng)用程序的接口,也取決于該應(yīng)用程序索使用的應(yīng)用程序接口(api)集。Java應(yīng)用程序只運(yùn)行在Java虛擬機(jī)(jvm)上。它們不是為某個(gè)特定的處理器指令集或操作系統(tǒng)編譯的,而是為Java平臺(tái)編譯的。
2.2 Applet是一種可以通過html文檔運(yùn)行的程序。Html表示超文本標(biāo)記語言,是一種全局性的信息機(jī)構(gòu),是網(wǎng)頁使用的標(biāo)記語言,它將文檔中的不同部分通過關(guān)鍵字建立連接,使信息以交互方式進(jìn)行搜索。Html具有專門為applet定義的標(biāo)識(shí)符。當(dāng)瀏覽器顯示html文檔時(shí),基于Java的web瀏覽器要有一個(gè)jvm來運(yùn)行applet。Applet常被用來增加網(wǎng)頁的視覺和多媒體效果。
2.3 Servlet就像applet,是用來優(yōu)化網(wǎng)頁設(shè)計(jì)的Java程序。于applet不同的時(shí),servlet運(yùn)行在基于Java的web服務(wù)器上,用來生成被發(fā)送到客戶端瀏覽器上進(jìn)行顯示的html文檔。
例如,可以使用servlet對web客戶端提交的html窗體進(jìn)行加工,制作成一個(gè)新的回應(yīng)網(wǎng)頁。
3.1 代碼可重用性
①Javabean使Java類,或者使Java類組,但是要遵循一套非常嚴(yán)格的技術(shù)標(biāo)準(zhǔn)。可以通過構(gòu)建Javabean組建,將Java類變成可重用的和可配置的軟件組件。通過使用開發(fā)工具,程序員可以將Javabean組件連接起來并應(yīng)用到Java應(yīng)用程序中,就像用標(biāo)準(zhǔn)微處理芯片焊接一個(gè)集成電路板一樣。許多的Java核心類都是Javabean組件,如用于gui的可視化圖形對象。
②企業(yè)型Java小系統(tǒng)(enterprise Java bean,ejb)使一種非常有前途的新興技術(shù)。Ejb標(biāo)準(zhǔn)定義了分布式企業(yè)環(huán)境下,服務(wù)器組件的軟件體系結(jié)構(gòu)。它的目標(biāo)式讓程序員專注于Java類需要執(zhí)行的業(yè)務(wù)邏輯。企業(yè)型Java 服務(wù)器(enterprise java server,ejs)用于管理以下服務(wù):事務(wù)處理、安全、命名服務(wù)來定位和鑒別ejb。通常,編程員需要一個(gè)ejb開發(fā)工具來構(gòu)造和發(fā)布ejb。
3.2 Java的健壯性
①在jvm上運(yùn)行的程序不能直接訪問機(jī)器本地系統(tǒng)資源,除非通過jvm支持的api。因此,Java程序不能訪問不允許應(yīng)用程序使用的內(nèi)存區(qū)域,不能錯(cuò)誤調(diào)用api,不能執(zhí)行一些比較低級(jí)的操作,因?yàn)檫@些操作常常式用其他語言編制的程序出錯(cuò)的原因。
②jvm執(zhí)行自己哦能夠內(nèi)存單元管理。Java語言能很大程度的降低濫用內(nèi)存單元的幾率,而其他的語言一般斗明確指出內(nèi)存的申請和釋放必須由程序員來完成。程序員很難任意訪問內(nèi)存單元,可jvm卻可以實(shí)時(shí)檢查內(nèi)存中可用的界限。因此,程序從來不會(huì)在不該訪問內(nèi)存單元的時(shí)候進(jìn)行訪問,或錯(cuò)誤調(diào)用了他們本不想調(diào)用的內(nèi)存單元。
③Java平臺(tái)具有一個(gè)強(qiáng)大的管理機(jī)制用來處理錯(cuò)誤和意外事件。當(dāng)某個(gè)操作不能被完全執(zhí)行時(shí),用其他編程語言編制的程序往往回過早地終止。在jvm中有一個(gè)處理錯(cuò)誤信息和意外事件的對象叫Exception(異常)。這個(gè)對象記錄了所有發(fā)生過的意外事件的類型和原因。程序員可以微所有類型的意外事件編寫自己所需的程序。例如,當(dāng)程序試圖讀取一個(gè)不存在的文件時(shí),錯(cuò)誤處理程序就會(huì)捕捉到錯(cuò)誤信息并做出適當(dāng)處理。盡管錯(cuò)誤處理模塊不是Java語言所獨(dú)有的,但它在Java環(huán)境中的使用卻有更可靠的表現(xiàn)。
④Java語言是類型安全的,也就是 說,不能隨意的使用某個(gè)信息,所有的操作都應(yīng)該基于該信息所定義的類型。也不能玩弄投機(jī)取巧的的小伎倆,因?yàn)檫@種做法在其他語言中是許多程序出錯(cuò)的罪魁禍?zhǔn)住@?,不能用你的?shù)據(jù)結(jié)構(gòu)覆蓋系統(tǒng)中的數(shù)據(jù)結(jié)構(gòu),然后再對其進(jìn)行修改。
3.3 Java的安全性
①jvm在一個(gè)沙盒(sandbox)中運(yùn)行不可信代碼。沙盒為jvm分配專門運(yùn)行有限特權(quán)代碼的區(qū)域。沙盒中的代碼只有很少的權(quán)限來訪問文件系統(tǒng),而且不允許進(jìn)行任何損害jvm或本地系統(tǒng)完整性的操作。例如,不可信代碼不能寫入本地文件,不能直接訪問本地代碼,不可以讀取特定的系統(tǒng)屬性。
②從不可信站點(diǎn)下載的字節(jié)碼(如未知服務(wù)器),在執(zhí)行前,必須先要進(jìn)行檢驗(yàn)。檢驗(yàn)系統(tǒng)是一個(gè)安全機(jī)制。它必須保證字節(jié)碼文件的構(gòu)造是正確的。例如,它必須核查每條指令都有一個(gè)合法操作碼。
③如果applet具有一個(gè)可識(shí)別的數(shù)字簽名密鑰,jvm也能接受applet。
3.4 Java語言的動(dòng)態(tài)性
在Java語言中,根據(jù)使用的環(huán)境不同,動(dòng)態(tài)一詞有不同的解釋:
①在運(yùn)行時(shí),jvm動(dòng)態(tài)的將程序所需的類加載進(jìn)來。只有當(dāng)類第一次被使用時(shí),jvm才將其加入。Jvm不需要將程序使用的所有類都加載進(jìn)來,也不需要在程序執(zhí)行前將所有類都準(zhǔn)備出來。
②當(dāng)同一個(gè)繼承層次支持一個(gè)以上的類調(diào)用方法時(shí),jvm使用動(dòng)態(tài)綁定來決定使用那個(gè)調(diào)用方法。
③Java軟件的卡發(fā)過程也具有動(dòng)態(tài)的性質(zhì)。程序員可采用增量的方式構(gòu)建類集盒創(chuàng)建、測試程序、并用不同的方法進(jìn)行組合。
Java的誕生是對傳統(tǒng)計(jì)算機(jī)模式的挑戰(zhàn),對計(jì)算機(jī)軟件開發(fā)和軟件產(chǎn)業(yè)都產(chǎn)生了深遠(yuǎn)的影響?;跇?gòu)建開發(fā)方法的崛起,引出了CORBA國際標(biāo)準(zhǔn)軟件體系結(jié)構(gòu)和多層應(yīng)用體系框架,在此基礎(chǔ)上形成了Java.2平臺(tái)和.NET平臺(tái)兩大派系,推動(dòng)了整個(gè)IT業(yè)的發(fā)展;軟件產(chǎn)業(yè)的影響是軟件從以開發(fā)為中心轉(zhuǎn)到了以服務(wù)為中心,而中間提供商,構(gòu)件提供商,服務(wù)器軟件以及咨詢服務(wù)商出現(xiàn),這就要求企業(yè)必須重塑自我,B2B的電子商務(wù)將帶動(dòng)整個(gè)新經(jīng)濟(jì)市場,使企業(yè)獲得新的價(jià)值,新的增長,新的商機(jī),新的管理;對軟件開發(fā)帶來了新的革命,重視使用第三方構(gòu)件集成,利用平臺(tái)的基礎(chǔ)設(shè)施服務(wù),實(shí)現(xiàn)開發(fā)各個(gè)階段的重要技術(shù),重視開發(fā)團(tuán)隊(duì)的組織和文化理念,協(xié)作,創(chuàng)作,責(zé)任,誠信是人才的基本素質(zhì)??傊?,目前以看到了Java對信息時(shí)代的重要性,未來還會(huì)不斷發(fā)展,Java在應(yīng)用方面將會(huì)有更廣闊的前景。
[1]李鐘尉,周小彤,陳丹丹等.Java從入門到精通.2010年07月.清華大學(xué)出版社.