Java SE 6 的第一印象:桌面應用的成功者(上)

一個經驗豐富的Java開發者對Java SE 6 beta做了性能測試,並認爲它有可能成爲桌面應用的革命性產品。

 

目前發佈的Java SE 6 beta 被主流評價是特徵全面的並且比較穩定的。我下載下來並進行了一個星期的版本可用性測試,在使用之後我對這個新的桌面特性產生了獨特的印象。除了爲所有的Java platforms(“2”已經被去掉了)版本採用新的命名之外,它還改進了許多新的特性,這些都值得我們探究。這些改進主要從桌面與核心兩個方面。

對桌面的改進主要是在用戶界面(UI)執行和本地操作系統的桌面集成。對內核的改進的目的也是爲了提高開發者的生產力與Java應用的管理。Sun公司的Mustang TeamWeb services的支持和安全改進也做了很大的努力。

總的來說,無論你是應用開發人員、系統管理員、軟件廠商或者安全專家,Java SE 6中都有適用你的東西。這篇文章介紹了一些有趣的新特性,我將詳細敘述。

 

核心特徵和改進

 

Java的核心可以描述爲給Java從用戶接口API到服務器庫各方面提供基本支持的Java(語言和工具)部分。我對Java SE 6Java核心改進的理解可以分爲以下幾個部分:

 

開發人員的生產力

新的Java Compiler API允許源代碼在應用程序內部編譯。在編譯過程中,應用程序有權以公式化的形式使用庫的所屬信息,連同警告、錯誤和其它產生的信息。儘管這個特徵看起來我們並不常用,但我立刻發現了它的新用途。例如,我用它很快地爲一個已有應用程序構造了數據存取層。我寫的代碼編譯成類對應用程序的數據庫表進行存取。最後的結果是產生了JAR文件,並用一部分系統Ant腳本構造佈署。事實上所有這些類都是在應用程序內部代碼相互編譯產生的——因此我能反覆地修改和構造這些類。

爲了能夠使用Java scriptingJava SE 6開始支持JSR 233JSR233是一種提供把腳本語言加入到Java內部的腳本框架。你能在程序運行的時候查找調用腳本運行。Scripting API使你能爲自己選擇的腳本語言提供Java支持。除此之外,Web Scripting Framework可以讓腳本代碼在一些Servlet容器創建Web目錄。

對於調試(debugging),Java平臺調試器(JPDA)增強了死鎖的檢測和產生被鎖對象監控的堆棧跟蹤。Java SE 6允許在運行的JVM上捆定第三方代理而起到診斷的目的。

 

應用程序管理

Java SE 6也增強了內存泄漏的分析和檢測,其主要是通過在java.lang.OutOfMemory異常裏完整的堆棧跟蹤和堆滿時產生的重大錯誤日誌。另外,在新的JVM中,你還可以在堆滿時運行腳本。

改進的JMX Monitoring API允許應用程序當MBean屬性(包括複雜的類型)值通過指定的入口時發送事件。

對於Solaris 10的用戶們,Solaris裏的Hotspot JVM提供了實用的Solaris DTrace系統調試,用來跟蹤和顯示JVM內部活動,如垃圾回收器、類的加載、線程、鎖等等。我在JavaOne上得到了關於這個特性的第一手Demo,並且對DTrace系統提供的深度調試有很深的印象。當一個程序在運行的時候,你可以通過DTrace隨時停止代碼運行,看看所有庫是如何載入的(不僅僅是Java庫,還有系統庫),也可深入Solaris內核,一直到底層硬件。Java提供的這個了不起的工具使得系統調試領域成爲可能。我還記得在過去的一段時間,當我看到在JVMSolaris Signal-8錯誤時的情形;現在這個特徵將省去我很多猜測的時間。

 

Web Services

Java SE 6包含了一些對Web services支持的API。通過在XML數據上執行密碼操作,你可以使用XML Digital Signatures API保護以Java爲基礎的Web servicesJava-XML Web Service(JAX-WS)2.0 API補充了原來JAX-RPC中的庫。改進的Java-XML Binding(JAXB)2.0包含XML計劃和綁定在計劃上的類。最後,Streaming API for XMLSTAX)可以讀寫雙向API和經過事件流寫入XML,包括跳躍部件的能力和文檔分段的關注。

 

 

Java SE 6的安全機制有:GSS/Kerberos 集成、Java Authentication and Authorization Service (JAAS) for LDAP authentication和安全證書請求框架,這個框架允許Java應用程序在衆多協議之上請求安全證書。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章