java發(fā)展的未來(lái)趨勢(shì)

對(duì)Java來(lái)說(shuō),2010年是不平凡的一年,從Oracle在年初完成對(duì)Sun的收購(gòu),使大家對(duì)Java的未來(lái)充滿了關(guān)注,而12月份在北京進(jìn)行的JavaOne大會(huì),可以說(shuō)是Oracle在收購(gòu)Sun之后的第一次正式大會(huì),大家可以從 JavaOne上更多了解了Java未來(lái)的發(fā)展。而2011年,將成為Java新的開(kāi)始。

Java走過(guò)了它15年的歷程,在日新月異的IT技術(shù)領(lǐng)域不算年輕,但它一直沒(méi)有停下變革、創(chuàng)新的腳步。Java已經(jīng)不單單是一種計(jì)算機(jī)語(yǔ)言,很多情況下,我們稱它是一個(gè)平臺(tái),一個(gè)社區(qū)。下面從Java SE、Java EE、Java ME、JavaFX幾個(gè)方面,展望Java技術(shù)在2011年的發(fā)展。

Java SE
從 Oracle公布的Java未來(lái)戰(zhàn)略我們可以看到,Oracle目標(biāo)是加強(qiáng)和繼續(xù)擴(kuò)大Java在新領(lǐng)域的應(yīng)用,并將Java平臺(tái)納入新的部署架構(gòu),加大對(duì) Java社區(qū)的投資,允許社區(qū)更多地參與。開(kāi)發(fā)人員比較關(guān)注的Java SE 7將會(huì)在2011年夏天就緒,其中JCP已經(jīng)批準(zhǔn)了JSR 334、JSR 335、JSR 336和JSR 337等,支持改進(jìn)Java語(yǔ)言和API規(guī)范,比如switch in string、multi-catch、泛型實(shí)例創(chuàng)建中的precise rethrow、Lambda表達(dá)式(閉包)等。而Java SE 8也將在SE 7發(fā)布之后的一年到一年半的時(shí)間就緒。

模塊化的VM:可以將VM拆分成小塊由應(yīng)用程序使用,并按需推向Internet,這樣的結(jié)果是Java應(yīng)用程序的啟動(dòng)時(shí)間更短了,當(dāng)VM不在目標(biāo)機(jī)器上時(shí),下載的時(shí)間也更短了。

額外的語(yǔ)言支持:Java平臺(tái)支持用不同語(yǔ)言編寫(xiě)的應(yīng)用程序,未來(lái)將會(huì)添加更多的語(yǔ)言支持,當(dāng)然也包括對(duì)動(dòng)態(tài)語(yǔ)言的支持,這就是所謂的達(dá)芬奇機(jī)或多語(yǔ)言虛擬機(jī),請(qǐng)參考JSR-292。

增強(qiáng)的多核支持:需要借助工具、庫(kù)和內(nèi)置設(shè)施幫助新的和現(xiàn)有的Java應(yīng)用程序更有效地利用多核硬件的優(yōu)勢(shì),Java的線程模型可以輕松地創(chuàng)建并行執(zhí)行任務(wù)的線程,但你如何將一個(gè)單一的任務(wù)拆分成多片進(jìn)行并行執(zhí)行呢?

其它改進(jìn)包括持續(xù)的性能改進(jìn),以及許多語(yǔ)言方面的增強(qiáng),包括增加的閉包,在switch語(yǔ)句中對(duì)Strings的支持,以及多塊異常捕獲,閉包是一個(gè)有爭(zhēng)議的功能,它是通過(guò)使用匿名的Java內(nèi)部類(lèi)實(shí)現(xiàn)的。

Java EE
Oracle長(zhǎng)期以來(lái)一直都是Java的支持者,也是最大的JCP成員之一,10多年前就開(kāi)始參與Java EE規(guī)范的編制,因此對(duì)Oracle成為Java中間件市場(chǎng)的大鱷不應(yīng)該感到意外。

Java EE展望
模塊化,開(kāi)發(fā)標(biāo)準(zhǔn):Java EE 6通過(guò)配置文件(Profile)定義實(shí)現(xiàn)了模塊化Java EE,允許廠商根據(jù)特定需求創(chuàng)建更小的Java EE堆棧子集,解決成本和Java EE使用復(fù)雜問(wèn)題。通過(guò)模塊化設(shè)計(jì)和定義標(biāo)準(zhǔn),有助于簡(jiǎn)化Java EE,讓它的應(yīng)用領(lǐng)域更廣泛。

Java EE 6規(guī)定了兩種配置文件:Web配置文件(Servlet,JSP和JSF)和Java EE企業(yè)配置文件。顯然還可以定義更多的配置文件種類(lèi),例如,為支持會(huì)話初始化協(xié)議(SIP)定義電信服務(wù)器配置文件。

UI和RIA:HTML仍然是Java EE應(yīng)用程序隱含的UI協(xié)議,通常有Java Servlet,JSP和JSF生成,考慮到生產(chǎn)的Web頁(yè)面是靜態(tài)的,可以使用Ajax技術(shù),不過(guò)它已經(jīng)超出了Java EE的范疇。

雖然Oracle沒(méi)有明確這方面的具體計(jì)劃,但未來(lái)Java EE和JavaFX集成時(shí)將會(huì)解決Ajax問(wèn)題。

Java ME

作為 Oracle 首選的移動(dòng)環(huán)境的 Java,這個(gè)堆棧未來(lái)默認(rèn)的呈現(xiàn)方式將會(huì)是 HTML, CSS 和 Javascript。Java ME 將包含 WebKit 引擎,JavaScript. 引擎,和 Java/JavaScript. 橋,換言之,未來(lái)運(yùn)行新版 Java ME 的手機(jī),將能夠訪問(wèn)瀏覽器以外的 Web 服務(wù),而不會(huì)有任何性能問(wèn)題。這些引擎將直接插入 Java ME 虛擬機(jī)和插入 Java FX。

Oracle 的 Java ME 引擎,將利用當(dāng)代圖形硬件加速器所擅長(zhǎng)的(60 frames/秒)二維和三維渲染(在 Windows 環(huán)境下,微軟的 Direct X,還有 OpenGL 或未來(lái)“更好”的技術(shù))。 Java ME 將會(huì)針對(duì) ARM7 和 ARM9 芯片組進(jìn)行優(yōu)化,包括 Broadcom,三星,NEC,德州儀器,以及其他取得授權(quán)的手機(jī)部件制造商,還將內(nèi)置充分利用手機(jī)裝置的支付,通話,和定位等功能的 API。

JavaFX
隨著 JavaFX 和 Java 的整合,并運(yùn)行于 JVM 之上,它的富媒體處理及二維和三維渲染功能,也將能提供給任何在 JVM 上運(yùn)行的其他編程語(yǔ)言,這意味著,例如 Groovy, Scala 和 JRuby 等也都能用來(lái)整合 JavaFX 的能力。

JavaFX展望:
基于可視化組件創(chuàng)建一個(gè)設(shè)計(jì)范式
為JavaFX應(yīng)用程序創(chuàng)建一個(gè)豐富的UI擴(kuò)展庫(kù)
提升所有平臺(tái)的JavaFX性能
增強(qiáng)跨設(shè)備移植JavaFX應(yīng)用程序的能力
與Java,JavaScript和HTML 5無(wú)縫集成
支持新興設(shè)備和UI范式(如多點(diǎn)觸摸)

北大青鳥(niǎo)網(wǎng)上報(bào)名
北大青鳥(niǎo)招生簡(jiǎn)章