[翻譯] JDK 7 特色中譯

Update: 新版請參見 – [翻譯] JDK 7 特色中譯更新版

時序已來到 2010 年,距離發佈 JDK 7 的時間越來越近。預計今年秋季釋出的 JDK 7 正式版中到底有哪些新功能呢?底下翻譯了 OpenJDK 網站上所公佈的 JDK 7 Features,在正式版來臨前先一睹為快吧!


本文是 Oracle 和其他組織所開發的 JDK 7 功能列表。

當 Java SE 7 平台的 JSR 送交時,這些功能會在其中被薦舉,除了那些列為 VM 層級或與實作相關的功能。

摘要

功能大致依序排列,從整個 JDK 軟體層級中的最底層一直到最高層。

分類項目
虛擬機器64 位元物件指標壓縮
垃圾優先的 GC(G1)
JSR 292:非 Java 語言的 VM 支援(InvokeDynamic)
語言JSR 294:模組編程的語言和 VM 支援
JSR 308:Java 型別上的標註(Annotation)
JSR TBD:語言上的小改進(Coin 專案)
JSR TBD:Lambda 專案
核心模組化(Jigsaw 專案)
升級類別載入器架構(class-loader)
可關閉 URLClassLoader 的函式
Unicode 5.1
並行性和容器的更新
JSR 203:更多 Java 平台上的新 I/O API(NIO.2)
SCTP(串流控制傳輸協定)
SDP(Sockets Direct Protocol)
橢圓曲線密碼學(ECC)
用戶端Java 2D 的 XRender 管線
6u10 部署功能
為 6u10 圖像功能建立新的平台 API
Swing Nimbus 界面外觀
Swing JLayer 組件
Web更新 XML 堆疊包

曾經計劃過但稍後卻被摒棄的功能會列在本頁最底端。

虛擬機器

64 位元物件指標壓縮

將 64 位元指標壓縮成 32 位元的技術,可減少記憶體和其頻寬的耗用,從而增進整體效能(VM 層級的功能)。

連結:Wiki

垃圾優先的 GC(G1)

新的垃圾收集器。它保証會比現有的 CMS 收集器還花費更少的暫停時間,以及擁有更佳的可預測性(VM 層級的功能)。

連結:ISMM 2004 paper摘要

JSR 292:動態型別語言的支援(InvokeDynamic

VM 支援非 Java 語言的實作品,可讓它們的效能直逼 Java 語言本身的效能。

連結:JSR 292專案頁面郵件清單

語言

JSR 294:模組編程的語言和 VM 支援

針對 Java 語言及 VM 規格的加強,使其支援模組編程,不管是編譯時期或執行時期。

連結:JSR 294郵件清單

JSR 308:Java 型別上的標註(Annotation)

擴充了 Java 標註語法,允許它出現在每次使用型別時。

連結:JSR 308專案頁面

譯註:目前標註僅能使用在標註宣告、package 宣告、型別宣告(包括類別、介面、列舉等宣告)、欄位宣告(包括列舉常數宣告)、建構子宣告、方法宣告、參數宣告、和區域變數宣告上。此項改變可使得標註能出現在每次型別和型別參數出現時,以及其他地方。例如:

interface MyList<@ReadOnly T> {}  // 型別參數
myStr = (@NonNull String) myObj;  // 型別使用
List<@NonNull Integer> myList;  // 型別使用
void read() throws @Critical IOException {}  // 型別使用
@Readonly Document [] [] docList1 = new @Readonly Document [1][2];  // 陣列
Document @Readonly [] [] docList2 = new Document @Readonly [1][2];  // 陣列
Document [] @Readonly [] docList3 = new Document[1] @Readonly [2];  // 陣列
new @Interned MyObject();  // 建構子呼叫
public String toString() @ReadOnly { … }  // 函式接收者

JSR TBD:語言上的小改進(Coin 專案)

一些語言上的小變化,目的是為了簡化一些常見的、例行性的編程工作。

連結:專案頁面郵件清單

JSR TBD:Lambda 專案

提供給 Java 語言的一級函式、函式型別和 Lambda 表達式(非正式地說法是 Closure)。

連結:專案頁面郵件清單

核心

模組化(Jigsaw 專案)

一個與實作相關、簡單、低階的模組系統,它側重於模組化 JDK,以及該系統的應用程式到 JDK 本身。

連結:專案頁面郵件清單

升級類別載入器架構(class-loader)

修改 ClassLoader API 和實作品,以避免在非階層式類別載入器的拓撲結構中發生死結。

連結:摘要

可關閉 URLClassLoader 的函式

提供一個方法來釋放被 URLClassLoader 所持有的潛在資源,像是已開啟的檔案。

規格:java.net.URLClassLoader.close()

並行性和容器的更新(jsr166y)

一個輕量級的分岔/接合(fork/join)框架、彈性及可復用的同步關卡(barrier)、傳輸佇列、並行的連結雙向(linked double-ended)佇列、以及本地執行緒(thread-local)的偽亂數產生器。

規格:java.util.concurrentForkJoinPoolPhaserTransferQueueConcurrentLinkedDequeThreadLocalRandom
連結:概觀API

Unicode 5.1

Unicode 的支援版本升級到 5.1。

並行性和容器的更新

一個輕量級的分岔/接合框架、一般化的關卡(barrier)和佇列、一個並行性參考的(concurrent-reference)HashMap、和可控制細粒度讀寫順序的柵欄。

連結:概觀API

JSR 203:更多 Java 平台上的新 I/O API(NIO.2)

新的 API,包括檔案系統存取、可調整的非同步 I/O 操作、Socket 通道綁定和組態、以及多點廣播的資料訊息(multicast datagrams)。

連結:JSR 203專案頁面訪談談話影片

SCTP(串流控制傳輸協定)

Solaris 上與實作相關的串流控制傳輸協定 API。

連結:專案頁面郵件清單

SDP(Sockets Direct 協定)

Solaris 及 Linux 上與實作相關的支援。它在 Infiniband(無限寬頻)的連線上具有可信賴且高效率的網路串流。

橢圓曲線密碼學(ECC)

標準橢圓曲線密碼學演算法的可攜式實作品,使得所有 Java 應用程式都可以應用。

用戶端

Java 2D 的 XRender 管線

基於 X11 XRender 擴充上的新 Java2D 圖形管線,它可存取大部份現今 GPU 的功能。

6u10 部署功能

從 6u10 版本而來的實作相關部署功能:新的 Java Plug-in、Java 核心、Java Quick Starter、和相關的安裝程式功能。

為 6u10 圖像功能建立新的平台 API

為 6u10 版本中原先已實作的功能建立新的平台 API:半透明和變形視窗、重量級/輕量級混合、以及增強的 AWT 安全性警示。

Swing Nimbus 界面外觀

Swing 裡下一代跨平台的界面外觀。

連結:專案頁面

Swing JLayer 組件

新增 SwingLabs JXLayer 組件裝飾器至平台中。

連結:JXLayer 專案

Web

更新 XML 堆疊包

升級 JAXP、JAXB、和 JAX-WS API 到最新近的穩定版本。

已摒棄

JSR 296:Swing 應用程式框架

一套 API 可定義典型 Swing 程式的基本結構,從而消除許多樣板程式碼,並提供大為改善的初始開發者經驗。

連結:JSR 296

Swing JDatePicker 組件

新增 SwingLabs JXDatePicker 組件至平台中。

連結:JXDatePicker API

最後更新:2010/2/9 13:31 -0800

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

3 × one =

返回頂端