註冊 | 登入 | RSS Feeds
ZDNet | Taiwan.CNET.com |

廣告:
一探究竟:新版J2SE 5.0

友善列印 | 轉寄朋友 | 加入HEMiDEMi網路書籤 | 加入funP | 加入Google書籤 | 加入Yahoo!奇摩分享書籤 | 留下回應
    
艾群科技資深工程師 2004/08/16 13:02:19 在Java九年發展歷史中,共經歷兩次重大改變。一是自JDK 1.1轉變至JDK 1.2,整個架構重新規劃,從此區分為Java Card、J2ME(Java 2 Platform Micro Edition)、J2SE(Standard Edition)和J2EE(Enterprise Edition)等四大領域,而JDK也改名成Java 2。

後續幾年改版,J2SE 1.3、J2SE 1.4大多只強化API功能,語言本身並無太多更改。然而,今年即將發表的J2SE 1.5 (正式版本編號改為J2SE 5.0,代號Tiger),可說是Java出道以來第二次重大變革。除新增各種不同新功能的API,也是語言層面改變最大的一次。

J2SE 5.0一口氣新增15項JSR,內含多達十幾種的功能及語法更新,目的無非是要讓Java程式開發人員可以更具效率得撰寫更為穩固的Java應用程式。到底有哪些的更新,又能帶來何種便利性呢?讓我們一探就竟,看看這隻老虎的威力。

J2SE 5.0新功能分別內建於以下15項JSR中:

  • JSR-003 JMX Management API
  • JSR-013 Decimal Arithmetic
  • JSR-014 Generic Types
  • JSR-028 SASL
  • JSR-114 JDBC Rowsets
  • JSR-133 New Memory Model
  • JSR-163 Profiling API
  • JSR-166 Concurrency Utilities
  • JSR-174 JVM Software Monitoring and Management
  • JSR-175 Metadata
  • JSR-199 Compiler APIs
  • JSR-200 Pack Transfer Format
  • JSR-201 Four Language Updates
  • JSR-204 Unicode Surrogates
  • JSR-206 JAXP 1.3

    這些JSR中包含許多新增功能,大致可簡單區分以下7項主題:

    簡易開發(Ease of Development)

    簡易開發可以說是本次改版的重點。利用一些語法上的更新與強化,降低程式撰寫的複雜度,同時增加程式的可讀性,減少不必要、不直覺的程式碼。尤其是Collection API的使用,更可感受到Tiger所具備的便利性。其主要新增的功能除了受到期待且爭議的泛型(Generic)之外,還有Autoboxing/ auto-unboxing、Enums、Extended-loop、Static import等。

    擴充性與效能(Scalability and Performance)

    「Java的效能不好」、「Java的效能是不是比不上C++」是其它陣營使用者,抑或是準備轉換至Java平台的使用者心中常有的質疑。基於設計理念的不同,C語言可與作業系統緊密結合,單純就速度比較,不可否認地,Java確實在某些層面敵不過C++。

    但是你要知道,Java擅長領域並非速度多快,此項語言所能保證的是系統的穩定性。就像越野車跟跑車來比速度,肯定跑車一定是快很多的。不過難到越野車就沒有贏的機會嗎?今天要比爬山越野能力,跑車就無用武之地了。就算同樣是在市區裡比賽,不同的駕駛員、不同的交通狀況,這些都是跟速度無關的條件,勝負往往也不是全靠速度。

    若回頭看看速度,其實也沒有慢多少。每有新Java版本推出,都會進行效能調校與改善。這次Tiger就加大執行時期的Heap,也強化Hotspot的效能,將可提供更快速且穩定的 New I/O。尤其是視窗型的Java應用程式,使用者可明顯感受程式啟動的速度加快不少。

    可監控、易管理(Monitoring and Manageability)

    新版Tiger新增不少強化管理與監控功能的API。JMX Management API原本只應用於 J2EE,可便於系統管理人員管理J2EE應用系統中的各項資訊,如今,Tiger也正式加入此組API。

    除易於管理之外,Tiger另新增監控機制,可讓系統管理抑或程式開發人員直接使用該標準API,撰寫監測與管理的應用程式,不僅能直接存取JVM狀態,進而可有效對應用程式或系統進行效能調校。以往這些動作皆需Third-party廠商旗下工具產品才可完成,現在,你可以自己撰寫程式完成這項工作。

    桌面軟體(Desktop Client)

    如前所述,Tiger提升視窗應用程式相關API的速度。此外,Tiger也更新Linux與Solaris的AWT API (名為XAWT),同時全力支援OpenGL的最新版本。利用OpenGL的原生支援,Java2D程式將可享受其所帶來的速度感。至於使用介面,Tiger也提供Windows XP與Linux/Red Hat兩大作業系統全新的Look and Feel。

    支援XML(Core XML Support)

    Tiger裡也更新了對XML的規格支援,XML版本支援到1.1及Namespace,也支援XML Schema及XSLT。對於底層SAX和DOM的部份,則支援到2.0.1和Level 3。相信用Java來處理XML文件會更容易、更俱威力。

    新增Unicode擴充字元(Unicode Supplementary Chars)

    Tiger增加了一些在Unicode 3.1裡的一些擴充字元(Supplementary Chars),這些擴充字元的編碼方式有點類以Big5字元用ASCII編碼的方式,就是用兩組UTF-16高、低字元,來表示這些擴充字元。不過你不用擔心該如何去區分一般或是擴充字元,Tiger裡已經透明化處理相關的API,讓你字串/元的運算跟平常沒兩樣。

    其他

    其他新增的API,如JDBC RowSet,基本上可讓資料庫存取工作更為容易,讀者若有興趣不妨參考甫落幕「JavaTwo」大會中,由蘇國鈞講師所介紹的Sun Java Studio Creator中的範例,直接體驗一下JDBC RowSet的威力。

    與取名Tiger的J2SE 5.0第一次接觸後,我的感覺是SCJP 1.5版本的認證考試將會更難通過,因為對於開發人員而言,必須學習的東西更多。不過,對於初學Java程式設計的人而言,Tiger確實實現簡易開發的諾言,開發人員不用在「為什麼不能直接把1, 2, 3這些數字直接加入Set之中」這類問題上迷路,當然也更加容易撰寫出可執行的程式。

    就像有了自排車,駕駛不再需要煩惱何時該換檔,但若想要掌握駕馭速度的快感,還是得了解排檔原理與功用,是吧?

  • 作者於中正大學資訊工程研究所博士班肄業。專精Java技術開發,曾出任Java Two七屆講師。知名Java工具書作家,已發表著作包括Palm應用程式設計、Java2全方位學習等系列書籍。
    加入我的圖書館 訂閱關鍵字
    加入網路書籤> 加入HEMiDEMi網路書籤 | 加入funP | 加入Google書籤 | 加入Yahoo!奇摩分享書籤 |
    友善列印 | 轉寄朋友

    icn_balloon_154x48 對本則報導有任何意見或看法嗎?歡迎留言


    留下你的意見
    會員 * 帳號:
    * 密碼:
    1. 欄位可選填,若全不填,則顯示為「匿名」。
    2. 不支援html語法
    非會員 姓名:
    E-Mail:
    Blog:
      重新載入驗證碼
    * 驗證碼: 記住我




    廣告

    名家專欄

    更多名家專欄
    Sponsored
    利用可靠和高效的NonStop刀鋒技術,達成持續不斷的可用性
     
    + 關鍵任務作業專用刀鋒
    + 更輕易管理虛擬化
    + 更有效控管能源,進而降低能源成本

    研討會中心

    廣告


    Sponsored

    活動快訊