四大特性支柱
Java 7(開發中代號)預計特性歸類為:非 Java 語言支援(JSR 292 invokedynamic)、「易於開發」語法糖、模塊化運行時、可伸縮性增強。
JSR 292:為動態語言鋪路
新字節碼 invokedynamic 配合方法鏈接機制,解決動態類型語言(Ruby、Python、Groovy)在 JVM 上調用方法時的強類型瓶頸,消除反射/生成調用器的性能懲罰,讓 JVM 成為多語言運行平台的堅實基石。
Project Coin:微小語法,巨大體驗提升
switch 支援 String。
- 鑽石操作符
<> 簡化泛型實例化:new HashMap<>()。
- Varargs 方法調用警告前移至聲明處。
- 集合字面量語法:
List<String> list = ["a", "b"];。
- try-with-resources:
try (Resource r = ...) { ... } 自動關閉實現 AutoCloseable 的資源。
- 閉包 仍在競爭提案中,最終形態未定。
Project Jigsaw:模塊化 JDK
應對 JDK 體積膨脹導致的下載、啟動、記憶體三重壓力。允許按需下載/加載模塊,並將模塊化機制延伸至庫與應用,實現「精準供給」。
可伸縮性雙引擎:NIO.2 與 Concurrency 更新 (JSR 166y)
NIO.2 (JSR 203)
- 異步 I/O:
AsynchronousChannel + Future / CompletionHandler 回調,線程無阻塞等待 I/O 完成。
- NetworkChannel 統一 SocketChannel API,新增
bind()、getOption()/setOption()、多播 MulticastChannel。
- 增強文件系統 API:複製/移動/符號鏈接/權限/變更通知,修復舊
java.io.File 缺陷(如刪除/重命名無異常反饋)。
Concurrency 新成員
- Fork-Join 框架:Doug Lea 稱「多核友好輕量級並行框架」,適用於可遞歸分解任務(如合併排序),內建工作竊取調度器。
- TransferQueue:傳遞確認語義的阻塞隊列,生產者僅在消費者真正取走元素後返回。
- Phaser:可動態調整參與方數量的同步屏障,超越
CyclicBarrier。
IBM Java 7 運行時差異化價值
IBM 在規範基線上疊加三大增值維度:
- 啟動性能:共享類緩存持久化已驗證類數據 + 中度優化 JIT 代碼,Java 7 進一步推進多線程並行啟動與更多緩存數據。
- 運行時性能:SPECjbb2005 數據顯示 Java 5→6 吞吐提升 15–17%,Java 7 持續優化 JIT 編譯器與 GC。
- 可靠性:全平台公共代碼庫(14 個 JDK 6 發布版覆蓋 31/32/64 位 Windows、z/OS),單一缺陷修復惠及所有平台。
- 可服務性:轉儲引擎增強(堆棧類型、分配事件觸發)、跟蹤引擎飛行記錄器、健康中心低開銷實時監控、記憶體分析器整合 Eclipse MAT + DTFJ 擴展支援 PHD/系統轉儲。
開放 Beta 項目提供早期訪問與反饋通道,開發者可參與塑造最終產品。