国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
Jdk1.6新特性(優(yōu)勢) - ★無忌★的日志 - 網(wǎng)易博客

Jdk1.6新特性(優(yōu)勢)

軟件開發(fā) 2009-01-05 15:53:43 閱讀518 評論0   字號: 訂閱

Java 平臺的第六個版本, Standard Edition (Java SE), 代號Mustang(野馬), 發(fā)布了第二個Beta版本.

今年年初Mustang發(fā)布了第一個Beta版本.掀開了Java SE 6 的神秘面紗.

這一次,是時隔4個月發(fā)布第二次Beta版本.

Java SE 6 Beta 2 (Mustang) 有什么新東西? 有什么值得開發(fā)者關(guān)注?

簡化Web Services
Mustang 將 簡化Web services 的開發(fā)和發(fā)布. XML和Web服務(wù)一直都是Mustang的關(guān)注重點(diǎn).. Mustang為此引入了JAX-WS(Java Architecture for XML-Web Services) 2.0 以及JAXB(Java Architecture for XML Binding) 2.0.. 同時還有Streaming API for XML (STaX), 它提供了一個雙向API,這個API可以通過一個事件流來讀取或者寫入XML,其中包括跳過某個部分,然后直接關(guān)注與文檔中的另外一個小部分的能力。


Scripting,整合腳本語言
目前來講,Java 開發(fā)者們必須在Java之外獨(dú)立地額外編碼來使用non-Java 腳本語言。這個頭痛的問題將被Mustang 消滅,開發(fā)者將更加輕松的使用Perl、PHP、Python、JavaScript 和Ruby等腳本語言。新的框架將允許人們操作任意的腳本語言,和使用Java 對象。

Java SE6中實(shí)現(xiàn)了JSR223。這是一個腳本框架,提供了讓腳本語言來訪問Java內(nèi)部的方法。你可以在運(yùn)行的時候找到腳本引擎,然后調(diào)用這個引擎去執(zhí)行腳本。這個腳本API允許你為腳本語言提供Java支持。另外,Web Scripting Framework允許腳本代碼在任何的Servlet容器(例如Tomcat)中生成Web內(nèi)容。

Database,綁定Derby
開源嵌入式數(shù)據(jù)庫 Derby(JavaDB) 綁定在JDK 1.6中.具體可以參考:JDK 1.6 將綁定開源數(shù)據(jù)庫 Derby

更豐富的Desktop APIs
Mustang中擁有更多強(qiáng)的桌面API提供給開發(fā)者, 開發(fā)者可以更簡單地開發(fā)更強(qiáng)大的桌面應(yīng)用, 比如啟動界面的支持,系統(tǒng)托盤的支持,JTable排序等等

監(jiān)視和管理
Java SE 6中對內(nèi)存泄漏增強(qiáng)了分析以及診斷能力。當(dāng)遇到j(luò)ava.lang.OutOfMemory異常的時候,可以得到一個完整的堆棧信息,并且當(dāng)堆已經(jīng)滿了的時候,會產(chǎn)生一個Log文件來記錄這個致命錯誤。另外,JVM還添加了一個選項(xiàng),允許你在堆滿的時候運(yùn)行腳本。(這也就是提供了另外一種方法來診斷錯誤)

增強(qiáng)的JMX 監(jiān)視API在MBean的屬性值傳入了一個特定的參數(shù)的時候,允許這個應(yīng)用程序發(fā)送一個事件通告。(這里的屬性值可以在很復(fù)雜的類型中)

對于Solaris 10的用戶,為Solaris提供的Hotspot JVM中,提供了一種通過Solaris DTrace(這是個系統(tǒng)的調(diào)試工具)來追蹤顯示JVM內(nèi)部的活動情況,包括垃圾收集,類裝載,線程,鎖等等。

Pluggable Annotations
從Java SE 5   帶來得新特性Annotations,將在Mustang繼續(xù)扮演重要角色..

Compiler API:訪問編譯器
對于Java開發(fā)工具, 或者Web框架 等的開發(fā)者來說, 利用編譯器編譯動態(tài)生成的代碼, 是一個普遍的需求.

Mustang實(shí)現(xiàn)了JSR 199,   提供了Java編譯器API(應(yīng)用程序接口),允許你從一個Java應(yīng)用程序中去編譯其他的Java源程序--比如在應(yīng)用程序中動態(tài)生成的一些源代碼..

Security:安全性
Java SE 6的安全部分,增加了 XML-Digital Signature (XML-DSIG) APIs, 整合了GSS/Kerberos的操作API,LDAP上的JAAS認(rèn)證。

Instrumentation
      利用 Java 代碼,即 java.lang.instrument 做動態(tài) Instrumentation 是 Java SE 5 的新特性,它把 Java 的 instrument 功能從本地代碼中解放出來,使之可以用 Java 代碼的方式解決問題。在 Java SE 6 里面,instrumentation 包被賦予了更強(qiáng)大的功能:啟動后的 instrument、本地代碼(native code)instrument,以及動態(tài)改變 classpath 等等。在 Java SE 5 當(dāng)中,開發(fā)者只能在 premain 當(dāng)中施展想象力,所作的 Instrumentation 也僅限與 main 函數(shù)執(zhí)行前,這樣的方式存在一定的局限性。在 Java SE 6 的 Instrumentation 當(dāng)中,有一個跟 premain“并駕齊驅(qū)”的“agentmain”方法,可以在 main 函數(shù)開始運(yùn)行之后再運(yùn)行。

Http
    在 Java SE 6 當(dāng)中,圍繞著 HTTP 協(xié)議出現(xiàn)了很多實(shí)用的新特性:NTLM 認(rèn)證提供了一種 Window 平臺下較為安全的認(rèn)證機(jī)制;JDK 當(dāng)中提供了一個輕量級的 HTTP 服務(wù)器;提供了較為完善的 HTTP Cookie 管理功能;更為實(shí)用的 NetworkInterface;DNS 域名的國際化支持等等。
    HTTP Cookie管理可以應(yīng)用客戶操作臨時變量的保存,如查詢條件,當(dāng)前狀態(tài)等


JMX與系統(tǒng)管理

管理系統(tǒng)的構(gòu)架
圖 1. 管理系統(tǒng)構(gòu)架

 

上圖分析了管理系統(tǒng)的基本構(gòu)架模式。其中 Agent / SubAgent 起到的就是翻譯的作用:把 IT 資源報告的消息以管理系統(tǒng)能理解的方式傳送出去。

也許讀者有會問,為什么需要 Agent 和 SubAgent 兩層體系呢?這里有兩個現(xiàn)實(shí)的原因:

管理系統(tǒng)一般是一個中央控制的控制軟件,而 SubAgent 直接監(jiān)控一些資源,往往和這些資源分布在同一物理位置。當(dāng)這些 SubAgent 把狀態(tài)信息傳輸?shù)焦芾硐到y(tǒng)或者傳達(dá)管理系統(tǒng)的控制指令的時候,需要提供一些網(wǎng)絡(luò)傳輸?shù)墓δ堋?/p>

  1. 管理系統(tǒng)的消息是有一定規(guī)范的,消息的翻譯本身是件復(fù)雜而枯燥的事情。

一般來說,管理系統(tǒng)會將同一物理分布或者功能類似的 SubAgent 分組成一組,由一個共用的 Agent 加以管理。在這個 Agent 里封裝了 1 和 2 的功能。

JMX 和管理系統(tǒng)

JMX 既是 Java 管理系統(tǒng)的一個標(biāo)準(zhǔn),一個規(guī)范,也是一個接口,一個框架。圖 2 展示了 JMX 的基本架構(gòu)。
圖 2. JMX 構(gòu)架

和其它的資源系統(tǒng)一樣,JMX 是管理系統(tǒng)和資源之間的一個接口,它定義了管理系統(tǒng)和資源之間交互的標(biāo)準(zhǔn)。javax.management.MBeanServer 實(shí)現(xiàn)了 Agent 的功能,以標(biāo)準(zhǔn)的方式給出了管理系統(tǒng)訪問 JMX 框架的接口。而 javax.management.MBeans 實(shí)現(xiàn)了 SubAgent 的功能,以標(biāo)準(zhǔn)的方式給出了 JMX 框架訪問資源的接口。而從類庫的層次上看,JMX 包括了核心類庫 java.lang.managementjavax.management 包。java.lang.management 包提供了基本的 VM 監(jiān)控功能,而 javax.management 包則向用戶提供了擴(kuò)展功能。 JMX幫助開發(fā)者監(jiān)控JVM的信息。

編輯器API

     JDK 6 提供了在運(yùn)行時調(diào)用編譯器的 API。在傳統(tǒng)的 JSP 技術(shù)中,服務(wù)器處理 JSP 通常需要進(jìn)行下面 6 個步驟:

  1. 分析 JSP 代碼;
  2. 生成 Java 代碼;
  3. 將 Java 代碼寫入存儲器;
  4. 啟動另外一個進(jìn)程并運(yùn)行編譯器編譯 Java 代碼;
  5. 將類文件寫入存儲器;
  6. 服務(wù)器讀入類文件并運(yùn)行;

     但如果采用運(yùn)行時編譯,可以同時簡化步驟 4 和 5,節(jié)約新進(jìn)程的開銷和寫入存儲器的輸出開銷,提高系統(tǒng)效率。實(shí)際上,在 JDK 5 中,Sun 也提供了調(diào)用編譯器的編程接口。然而不同的是,老版本的編程接口并不是標(biāo)準(zhǔn) API 的一部分,而是作為 Sun 的專有實(shí)現(xiàn)提供的,而新版則帶來了標(biāo)準(zhǔn)化的優(yōu)點(diǎn)。
     新 API 的第二個新特性是可以編譯抽象文件,理論上是任何形式的對象 —— 只要該對象實(shí)現(xiàn)了特定的接口。有了這個特性,上述例子中的步驟 3 也可以省略。整個 JSP 的編譯運(yùn)行在一個進(jìn)程中完成,同時消除額外的輸入輸出操作。
     第三個新特性是可以收集編譯時的診斷信息。作為對前兩個新特性的補(bǔ)充,它可以使開發(fā)人員輕松的輸出必要的編譯錯誤或者是警告信息,從而省去了很多重定向的麻煩

一些有趣的新特性:

1 本地行為 java.awt.Desktop
比如用默認(rèn)程序打開文件,用默認(rèn)瀏覽器打開url,再也不用那個browserlauncher那么費(fèi)勁

Desktop desk=Desktop.getDesktop();
desk.browse(new URI("http://www.google.com"));
desk.open(file)
desk.print(file)

2 console下密碼輸入 java.io.Console
再也不用自己寫線程去刪echo字符了
Console console = System.console();
char password[] = console.readPassword("Enter password: ");

3 獲取磁盤空間大小 java.io.File的新方法
File roots[] = File.listRoots();
for (File root : roots) {
System.out.println(root.getPath()+":"+root.getUsableSpace()
+"/"+root.getTotalSpace());
}

4 專利過期,可以提供合法的lzw的gif encoder了
ImageIO.write(input, "GIF", outputFile);

5 JAXB2.0 增加了java-to-xml schema,完成java bean,xml間轉(zhuǎn)換非常容易

6 xml數(shù)字簽名 javax.xml.crypto,記得以前似乎只有ibm有個類庫實(shí)現(xiàn)了

7 編譯器,以前是com.sun.tools.javac,現(xiàn)在是javax.tools.JavaCompiler
有人寫了完全在內(nèi)存里的生成源文件,編譯,反射運(yùn)行的過程,比較好玩。

8 腳本引擎,javax.script,內(nèi)嵌的是Mozilla Rhino1.6r2 支持ECMAScript1.6(轉(zhuǎn))

0  分享到:      
閱讀(518)| 評論(0)| 引用(0) |舉報
本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
感受野馬(Mustang)性情,體會Java SE 6.0的新特性之二--Web服務(wù)
Java 8新特性探究(六)泛型的目標(biāo)類型推斷
Java學(xué)習(xí)指南:帶你進(jìn)入Java世界
Java 8發(fā)布Q&A
Java SE 6 新特性: JMX 與系統(tǒng)管理
SLF4J和Logback日志框架詳解
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服