<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    seaairland

     

    Java本紀(jì)之J2SE發(fā)展演變史

    Java的歷史可以追溯到1991年4月,Sun公司的James Gosling領(lǐng)導(dǎo)的綠色計劃(Green Project)開始著力發(fā)展一種分布式系統(tǒng)結(jié)構(gòu),使其能夠在各種消費性電子產(chǎn)品上運行,他們使用了C/C++/Oak語言。

    ?

      J2SE:懷胎

      Java的歷史可以追溯到1991年4月,Sun公司的James Gosling領(lǐng)導(dǎo)的綠色計劃(Green Project)開始著力發(fā)展一種分布式系統(tǒng)結(jié)構(gòu),使其能夠在各種消費性電子產(chǎn)品上運行,他們使用了C/C++/Oak語言。由于多種原因,綠色計劃逐漸陷于停滯狀態(tài)。

      直至 1994年下半年,由于Internet的迅猛發(fā)展和環(huán)球信息網(wǎng)的快速增長,第一個全球信息網(wǎng)絡(luò)瀏覽器Mosaic誕生了;此時,工業(yè)界對適合在網(wǎng)絡(luò)異構(gòu)環(huán)境下使用的語言有一種非常急迫的需求;Games Gosling決定改變綠色計劃的發(fā)展方向,他們對Oak進行了小規(guī)模的改造,就這樣,Java在1995年的3月23日誕生了!Java的誕生標(biāo)志著互聯(lián)網(wǎng)時代的開始,它能夠被應(yīng)用在全球信息網(wǎng)絡(luò)的平臺上編寫互動性及強的Applet程序,而1995年的Applet無疑能給人們無窮的視覺和腦力震蕩。

      但沒有相應(yīng)的開發(fā)庫而只靠Java語言來進行開發(fā)肯定是困難重重,所以Sun公司在1996年的1月23日發(fā)布了JDK 1.0來幫助開發(fā)人員的開發(fā)。JDK包括兩大部分:運行環(huán)境和開發(fā)工具。緊跟著,Sun公司在1997年2月18日發(fā)布了JDK 1.1。JDK1.1相對于舊版本最大的改進,是推出了JIT(Just-In-Time)編譯器,另外一個改進是AWT 1.1。

      在JDK 1.1時代,Java平臺分為PersonalJava與EmbeddedJava,前者比較適用于運算資源和內(nèi)存豐富的設(shè)備,而資源有限者適用于后者。這樣的分類明顯不符合時代發(fā)展的潮流,所以,Java平臺處處蘊藏著新的翻天覆地的革命……

      J2SE1.2:誕生

      JDK 1.2在1998年12月4日的隆重發(fā)布,標(biāo)志著Java2平臺的誕生。Java 2的J2SE 1.2時代是一個大變革時代,它進行了如下的三大革命:

      ● 市場推廣革命

      Sun公司在Java 1.2版以后將JDK 1.2改名為J2SDK,將Java改名為Java 2。在1999年Sun公司還將Java 2平臺分為三大塊:J2SE,J2EE,J2ME。這次市場推廣革命順應(yīng)了網(wǎng)絡(luò)急速發(fā)展的潮流,對Java 2平臺的發(fā)展起到了很好的催化劑的作用。

      ● API供應(yīng)標(biāo)準(zhǔn)革命

      而隨著供應(yīng)商的不同,Java的API分為三大類:

      Java Core API:由Sun公司制定的基本的API,所有的Java平臺都應(yīng)該提供。

      Java Optional API:由Sun公司制定的擴充API,Java平臺可以有選擇地提供。

      特殊API:由特殊廠商或者組織提供的API。

      ● API制定過程的革命

      如果你有需求不能通過遵循標(biāo)準(zhǔn)的API來實現(xiàn),可以向JCP提出制定新的API的請求,經(jīng)過審核,你的請求可能被通過或者駁回;如果是被通過,則開始進入制定該API的程序。

      J2SE 1.2時代進行的這些革命形成的制度一直沿用到現(xiàn)在,對Java技術(shù)的發(fā)展形成了深遠的影響。

      除了上述的三大革命,Java 2還支持并新增了許多新特性,最受追捧的當(dāng)屬Swing庫。Swing是輕量級的API,它不但有各式各樣先進的組件,而且連組件風(fēng)格都可抽換。Swing出現(xiàn)之后,大家很快地就不太使用AWT了。Java 2還廢棄了一些API,最重要的莫過于Thread類中對suspend(),resume()和stop()等方法的廢棄。由于JDK 1.1的集合類庫中的Vector類和HashTable類都考慮了同步,在平常的使用中影響效率,所以Java 2專門添加了對應(yīng)的非同步類,并完善了集合類庫。

      J2SE1.3:拓廣

      Java 2平臺推出后,得到了市場的強烈反響,所以,在2000年5月8日推出的J2SE 1.3對J2SE 1.2的改進,主要是對各種已有API的加強和對新API的拓展。

      數(shù)字運算:加入了java.lang.StrictMath,方便我們的一般的數(shù)字運算。

      新的Timer API:相信大家對其中的java.util.Timer和java.util.TimerTask一定不陌生。

      Collections包:加入了一些新的API,方便我們的使用。

      虛擬機停止鉤子:J2SE 1.3還加入了一個強大的功能,那就是虛擬機停止鉤子(Virtual Machine Shutdown Hooks),這個功能使得我們能夠在虛擬機停止時完成我們自己的操作,比如關(guān)閉網(wǎng)絡(luò)連接或者保存會話狀態(tài)或者清除臨時文件等等。

      DNS服務(wù):在JNDI接口方面,加入了一個DNS服務(wù)的實現(xiàn)。

      Jini實現(xiàn):J2SE 1.3包含了一個Jini實現(xiàn),這使得我們可以方便地把諸如打印機、攝像機和磁盤驅(qū)動設(shè)備插入現(xiàn)有網(wǎng)絡(luò)中,并且能自動搜索已在網(wǎng)上的設(shè)備可以提供的服務(wù)并享用這些服務(wù)。

      XML支持:由于計算機網(wǎng)絡(luò)和XML技術(shù)的快速發(fā)展, J2SE 1.3在Optional API中引入了Java API for XML包。

      HotSpot虛擬機:J2SE 1.3引入了HotSpot虛擬機。在Solaris版的JDK 1.3中,已經(jīng)不支持傳統(tǒng)的虛擬機,而Windows版的JDK 1.3同時支持傳統(tǒng)虛擬機和HotSpot虛擬機。

      從上面的分析可以看出,J2SE 1.3主要是對J2SE 1.2查漏補缺和拓展新的API。從應(yīng)用領(lǐng)域方面考慮,J2SE 1.3已經(jīng)涵蓋了數(shù)據(jù)庫、WEB、多媒體、網(wǎng)絡(luò)、電話、影像、加解密、圖形等等大部分的信息技術(shù)領(lǐng)域。

      在這個時期Java 2還有一個重要活動就是推出SCSL(Sun社區(qū)源代碼許可)許可協(xié)議。Sun公司開放源代碼項目的“女1號”Danese Cooper在1999年加入公司,負責(zé)Sun(包括Java)和開放源代碼社區(qū)之間的協(xié)調(diào)工作。Sun一直盡可能在贏利和開放源代碼之間尋求更好的平衡。

      Java的大行其道引起了Microsoft的警惕并直接導(dǎo)致了.Net的產(chǎn)生,這同時也宣布了Java作為獨一無二的Internet平臺地位的結(jié)束。這兩個對手在較量中相互學(xué)習(xí),現(xiàn)在在技術(shù)架構(gòu)上的目標(biāo)上已趨相同。

      J2SE 1.4:快速

      J2SE 1.4平臺的推出發(fā)生在2002年2月13日,由于此前在Java平臺和.NET平臺間發(fā)生了規(guī)模浩大的孰優(yōu)孰劣的論戰(zhàn),而論戰(zhàn)中,Java平臺最大的缺點就是性能問題,所以J2SE 1.4平臺把性能的改善放在了最重要的位置。

      HotSpot虛擬機:HotSpot虛擬機能夠很大程度上提高性能,所以J2SE 1.4已經(jīng)不支持傳統(tǒng)的虛擬機。現(xiàn)在,啟動應(yīng)用程序應(yīng)該通過-client或者-server選項來啟動。

      鎖機制:由于舊版的HotSpot虛擬機的鎖機制會導(dǎo)制嚴(yán)重的性能和功能問題,J2SE 1.4已經(jīng)改寫了該鎖機制。

      安全API:JCE、JSSE和JAAS這三大安全API從optional API移到了core API中。這樣,J2SE 1.4的安全域(SecureRandom)實現(xiàn)可以利用操作系統(tǒng)提供的安全機制,以便縮短應(yīng)用程序的啟動時間。

      RandomAccess標(biāo)記接口:加入了RandomAccess標(biāo)記接口,如果一個List實現(xiàn)了該接口,則表示它支持快速的隨機訪問,這樣可以提高List訪問的速度。

      LinkedHashMap:加入了LinkedHashMap,這是一個插入排序的Map實現(xiàn),但它的運行速度和HashMap一樣快。

      反射:很多產(chǎn)品中都要使用反射(Reflection)機制,但大家知道,反射是相當(dāng)耗時的,所以,J2SE 1.4中重寫了java.lang.reflect.Field、java.lang.reflect.Method.invoke()、java.lang.reflect.Constructor.newInstance()和Class.newInstance()等方法,使得我們利用反射也能寫出高性能的應(yīng)用程序。

      64位計算:J2SE 1.4支持64位計算。

      新的I/O API:J2SE 1.4在API層面最大的變動,就是它更新了原有的java.io包,以及加入了一組更有效率更多功能的New I/O API。
    斷言和日志處理:J2SE 1.4版本在Java語言層面上加入了斷言(assert關(guān)鍵字),在API層面上加入日志處理API,這些為程序的調(diào)試提供了強有力的支持。

      從上面的分析可以看出,Java 2平臺在經(jīng)過數(shù)年的發(fā)展后,已經(jīng)比較成熟穩(wěn)定,J2SE 1.4主要是對平臺的性能進行較多的考慮和修改。在分布式程序方面,1.4版比1.3版的運行效率提高了一半以上;而在客戶端程序方面,1.4版比1.3版的效率提高了1/3。

      J2SE 1.4版是J2SE第一個參與了 Java共同體過程(JCP)的J2SE版本。 像Borland、Compaq、FujitsuSAS、 Symbian、 IBM這樣的公司,和Sun一起定義并發(fā)展了J2SE 1.4規(guī)范。在開放、良好的文檔編撰與管理的過程中,形成了一個高質(zhì)量的、代表了Java共同體的多樣性的規(guī)范。

      J2SE5.0:易用

      在2004年十月J2SE 5.0發(fā)布的時候,Sun公司這樣解釋這次版本名稱不是J2SE 1.5而是J2SE 5.0的原因:“從Java誕生至今已有9年時間,而從有J2SE算起也有5個年頭了;在這樣的背境下,將該版本號從1.5改為5.0可以更好的反映出新版的J2SE的成熟度、穩(wěn)定性、可伸縮性、安全性。”

      J2SE的這次變更之重大和意義之深遠,的確也值得我們?yōu)橹寻姹咎栕儞Q到J2SE 5.0。我們再看看Sun公司網(wǎng)站對J2SE 5.0的features描述:“通過增強Java平臺的力量,允許開發(fā)者更容易地使用,Java編程語言的這些改進將吸引大量各種Java開發(fā)者”,這是“Java技術(shù)發(fā)展歷程的一個重要里程碑” 。從這個描述我們可以看出,J2SE 5.0最大的目標(biāo)是通過提供易用性而吸引各種開發(fā)者(當(dāng)然包括以前的C/C++開發(fā)者) ,而它對以前版本的修改并不僅僅是API的升級,而且包括對Java語言層面的改進,被譽為是”自Java問世以來的最大一次語言標(biāo)準(zhǔn)變化”。

      訪問環(huán)境變量:最初的Java語言有一個訪問環(huán)境變量的方法System.getenv(),但因為Java宣稱的”Write Once,Run AnyWhere”特性,所以在JDK 1.0中去掉了這個能夠訪問平臺專有信息的方法。在J2SE 5.0中,它又來了,并有所擴充。由此可見J2SE 5.0對編程方便性的重視程度。

      泛型:J2SE 5.0提供了強大的泛型機制,讓程序員可以減少代碼重復(fù),這個變化應(yīng)該可以吸引小部分的C#開發(fā)人員吧。

      增強的for循環(huán):為了克服普通for循環(huán)的代碼臃腫特點,J2SE 5.0提供了增強的for循環(huán),我們現(xiàn)在可以這樣寫一個for循環(huán):

    public void printAll(Collection coll)
    {
    ?for(String str : coll)
    ?{
    ??System.out.println(str);
    ?}
    }

      怎么樣?是不是簡單了很多?

      自動的裝箱/拆箱:

      可變參數(shù)數(shù)目J2SE 5.0開始支持Varargs(不固定自變量個數(shù)),J2SE 5.0中還加入了以前拋棄的枚舉和C風(fēng)格的格式化輸出,這應(yīng)該是為了吸引以前的C開發(fā)者吧。畢竟,在C開發(fā)中枚舉和格式化輸出用的是太多了。

      并發(fā) J2SE 5.0中加入了java.util.concurrent包,并向集合框架中加入了Queue接口,J2SE 5.0還為各種集合提供了并發(fā)情況下的實現(xiàn)。

      Properties類增強 由于XML的普及性應(yīng)用,J2SE 5.0為java.util.Properties類加入了從XML文件中裝載屬性和把屬性值存儲到XML文件中的方法。

      Annotation功能J2SE 5.0提供了注解(annotation)/元數(shù)據(jù)(metadata)功能,相信以后的大部分應(yīng)用產(chǎn)品都將充分利用它的注解而實現(xiàn)產(chǎn)品的各種特性。

      其它J2SE 5.0還在多線程(并發(fā)機制)、安全、國際化、UI等方面進行了大規(guī)模的變更,使得我們能夠更方便地進行Java開發(fā)。
    其實,上面的這些變更,并不是我們程序員非要不可的內(nèi)容。我們完全可以通過自己的辦法來達到這些變更實現(xiàn)的功能。但J2SE 5.0的目標(biāo)就是讓我們程序員能夠更加方便地進行開發(fā),所以,我們在基于J2SE 5.0開發(fā)時,應(yīng)該能夠明顯的體會到它的易用性。

      展望

      時至今日,J2SE已經(jīng)發(fā)展為一個覆蓋面廣、效率高、易用性強的技術(shù)平臺(見如下的J2SE API體系結(jié)構(gòu)圖),但Java并沒有停止前進的腳步。Mustang版本的J2SE正在緊鑼密鼓的開發(fā)當(dāng)中,按以前的慣例,每兩年會發(fā)布一個全新的J2SE版本,所以Mustang開發(fā)版對應(yīng)的J2SE 6.0發(fā)布版將在2006年完成。

      2005年5月23日是Java技術(shù)十周年慶典日,在這十年的發(fā)展中,Java平臺吸引了四百萬開發(fā)者,在網(wǎng)絡(luò)計算遍及全球的今天,更是有17.5億臺設(shè)備使用了Java技術(shù)。作為Java技術(shù)的基礎(chǔ),J2SE的功績不可掩沒,我們期望J2SE伴隨Java平臺一路走好!

    posted on 2006-05-19 14:38 chenhui 閱讀(128) 評論(0)  編輯  收藏


    只有注冊用戶登錄后才能發(fā)表評論。


    網(wǎng)站導(dǎo)航:
     

    導(dǎo)航

    統(tǒng)計

    常用鏈接

    留言簿(1)

    隨筆分類

    隨筆檔案

    文章分類

    文章檔案

    介紹 IOC

    友情鏈接

    最新隨筆

    搜索

    積分與排名

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 国产精品美女午夜爽爽爽免费| 亚洲AV无码AV日韩AV网站| 国产免费一级高清淫曰本片| 国产一级淫片a免费播放口之| 亚洲人成小说网站色| 久久久久久国产a免费观看黄色大片 | 美女内射无套日韩免费播放| 亚洲精品综合一二三区在线 | 免费国产作爱视频网站| 亚洲成人一级电影| 成人免费一级毛片在线播放视频| 亚洲一区中文字幕在线观看| 韩国免费一级成人毛片| 亚洲成在人线aⅴ免费毛片| 国产在线观看免费不卡| 国产成人无码免费看片软件| 国产亚洲精品a在线观看app| 99热在线免费播放| 中文字幕 亚洲 有码 在线| 妞干网在线免费视频| 人人爽人人爽人人片A免费| 国产亚洲人成A在线V网站| 国产免费无码一区二区 | 亚洲Av综合色区无码专区桃色| 久久久久免费看黄a级试看| 亚洲国产成AV人天堂无码| 暖暖免费高清日本一区二区三区| 乱人伦中文视频在线观看免费| 亚洲精品午夜无码电影网| 91精品手机国产免费| 亚洲乱亚洲乱妇24p| 国产AV无码专区亚洲AV手机麻豆 | 四虎影视在线影院在线观看免费视频| 亚洲日本国产精华液| 国产亚洲精品免费| 一区二区三区四区免费视频| 亚洲愉拍一区二区三区| 亚洲中文字幕无码一区| 99精品全国免费观看视频| xvideos永久免费入口| 亚洲明星合成图综合区在线|