已經(jīng)有14歲的Java在日新月異的IT技術(shù)領(lǐng)域內(nèi)不算年輕,但它一直沒(méi)有停下變革,創(chuàng)新的腳步。Java已經(jīng)不單單是一種計(jì)算機(jī)語(yǔ)言,很多情況下,我們稱它是一個(gè)平臺(tái),一個(gè)社區(qū),以及一個(gè)生態(tài)系統(tǒng)。下面從Java SE, Java EE, Java ME, JavaFX幾個(gè)方面,簡(jiǎn)要介紹一下Java技術(shù)在2009年的變化和趨勢(shì)。
JavaSE
目前JDK的正式版本是JDK 6 Update 12。JDK 6 Update 10以來(lái)的版本, 關(guān)鍵功能包括:
Java內(nèi)核大大縮小了,由原來(lái)的大約十幾兆縮小到4兆,這樣提高了啟動(dòng)Java程序的速度。而其它的Java庫(kù)在需要的時(shí)候可以后臺(tái)下載,這樣也縮短了等待和安裝的時(shí)間。
下一代的Plug-in架構(gòu)。Applet運(yùn)行在自己的進(jìn)程中,而不再依賴瀏覽器,提高了性能和可伸縮性。在2008 JavaOne 有一段很酷的演示,就是將Applet直接從瀏覽器中拖拽到桌面上,或者從桌面上拖到瀏覽器中。這個(gè)功能的實(shí)現(xiàn)有賴于JDK 6中重寫了連接 Java運(yùn)行環(huán)境和瀏覽器的代碼。這個(gè)新的Plug-in架構(gòu)還提供一個(gè)有意思的功能,可以在Web頁(yè)面通過(guò)JavaScript調(diào)用Web頁(yè)面上任何的 Applet, 不管這個(gè)Applet是用哪種語(yǔ)言寫的,比如JavaFX Script, JRuby, Jython。
這里要提到JDK 6中Java虛擬機(jī)(JVM)對(duì)動(dòng)態(tài)語(yǔ)言的支持(JSR 223)。這個(gè)框架可以使Java應(yīng)用程序中支持腳本引擎,這樣各種腳本語(yǔ)言就可以運(yùn)行在JVM上。JVM發(fā)展的一個(gè)重要方向就是去掉“J”,讓JVM成為能支持各種語(yǔ)言的,全能的“VM(虛擬機(jī))”。目前JVM支持的腳本語(yǔ)言包括:JavaFX Script, Groovy, JRuby, Jython, JavaScript, Scala, Clojure??梢灶A(yù)計(jì)到的是,將來(lái)會(huì)有更多的腳本語(yǔ)言運(yùn)行在Java虛擬機(jī)上。
還在草案階段的JDK7,一些新特性也值得期待:
一個(gè)是實(shí)現(xiàn)JDK 7模塊化(JSR 294, JSR 277), 將與OSGi聯(lián)盟更緊密的配合,以便JSR 294模塊可以被OSGi所使用。
另外一個(gè)是并行包。這個(gè)包致力于通過(guò)充分利用底層硬件來(lái)達(dá)到真正的并發(fā)。隨著硬件多核系統(tǒng)的廣泛應(yīng)用,并行計(jì)算的需求對(duì)Java的性能提出了更高要求。
Java EE
Java EE 6 (JSR 316)的公眾審議將在2009年2月23號(hào)結(jié)束。Java EE 6繼承了Java EE 5改進(jìn)的目標(biāo),就是簡(jiǎn)化開發(fā),另外,還增加了一個(gè)目標(biāo),更好地滿足開發(fā)人員的需求。關(guān)于Java EE 6的討論持續(xù)了很長(zhǎng)時(shí)間,而爭(zhēng)議最大的就是Java EE 6引入的Profile。
Java EE十年來(lái)的發(fā)展結(jié)果,是這個(gè)平臺(tái)變得越來(lái)越龐大,但對(duì)很多用戶和開發(fā)者來(lái)說(shuō),也許他只需要使用眾多功能中的很小一部分,卻不得不安裝整個(gè)平臺(tái)。Profile就是為解決這個(gè)問(wèn)題而定義的。Profile實(shí)際上是Java EE API的子集。討論最熱烈的Web Profile就集中在,哪些API應(yīng)該被放在標(biāo)準(zhǔn)Profile中?
Jave EE 6包括了一系列的新技術(shù)和升級(jí),篇幅所限制,僅羅列一些名詞:WebBean 1.0, JSF 2.0, EJB 3.1, JPA 2.0, Servlet 3.0, JAX-RS 1.1。
Java ME
Mobile Service Architecture 2 (MSA 2) 目前已經(jīng)到了公眾審議的尾聲 (JSR 249)。預(yù)計(jì)2009年,MSA 2將進(jìn)入實(shí)用階段。MSA 2是下一代Java ME平臺(tái)技術(shù),提供了更多移動(dòng)開發(fā)的新特性,比如可以訪問(wèn)手持設(shè)備上的各種傳感器,如加速計(jì)傳感器,電池容量(JSR256);可以在手機(jī)上看電視(JSR 272); 如同信用卡支付功能的手機(jī)錢包(JSR 257); 使用XML,腳本,與Java一同構(gòu)造GUI (JSR 290); 通過(guò)手機(jī)使用VOIP服務(wù)(JSR 281)。
JavaFX
Java在企業(yè)應(yīng)用程序的開發(fā)中一直占主導(dǎo)地位,但現(xiàn)在面向消費(fèi)者的富互聯(lián)網(wǎng)應(yīng)用(Rich Internet Application, RIA)軟件數(shù)量在急劇增加,這種情形下,JavaFX應(yīng)運(yùn)而生。和Java語(yǔ)言相比,JavaFX Script更適合開發(fā)高效,快速地開發(fā)集合各種媒體,交互性強(qiáng),界面吸引用戶的RIA應(yīng)用程序。2009年2月,JavaFX SDK 1.1 與 JavaFX Mobile都正式發(fā)布了,下一個(gè)要期待的是JavaFX TV。借助Java這個(gè)強(qiáng)大的平臺(tái),JavaFX目標(biāo)是提供給開發(fā)者更好的RIA平臺(tái)與技術(shù),除了繼續(xù)要在傳統(tǒng)的PC桌面保持優(yōu)勢(shì)外,更是面向未來(lái)的終端設(shè)備,手機(jī)和電視。