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