JDK 8 中的新特性
Java Platform, Standard Edition 8 是一個擁有豐富特性的主要版本。本文檔總結了 Java SE 8、JDK 8 以及 Oracle 的 Java SE 8 實現中的特性和增強。單擊組件名稱可獲取該組件增強功能更詳細的描述。
-
- Lambda 表達式是一個新的語言特性,已經在此版本中引入。該特性讓您可以將功能視為方法參數,或者將代碼視為數據。使用 Lambda 表達式,您可以更簡潔地表示單方法接口(稱為功能接口)的實例。
- 方法引用為已經具有名稱的方法提供了易于理解的 lambda 表達式。
- 默認方法允許將新功能添加到庫的接口中,并確保與為這些接口的舊版本編寫的代碼的二進制兼容性。
- 重復批注支持對同一個聲明或類型的使用多次應用相同的批注類型。
- 類型批注支持在使用類型的任何地方應用批注,而不僅限于聲明。與可插拔類型系統(tǒng)結合使用時,此特性可改進代碼的類型檢查。
- 改進類型推斷。
- 方法參數反射。
-
- 新的
java.util.stream 包中的類提供了一個 Stream API,支持對元素流進行函數式操作。Stream API 集成在 Collections API 中,可以對集合進行批量操作,例如順序或并行的 map-reduce 轉換。
- 針對存在鍵沖突的 HashMap 的性能改進
- 緊湊 profile包含 Java SE 平臺的預定義子集,并且支持不需要在小型設備上部署和運行整個平臺的應用。
-
- 默認啟用客戶端 TLS 1.2
-
AccessController.doPrivileged 的新變體支持代碼斷言其權限的子集,而不會阻止完全遍歷堆棧來檢查其他權限
- 更強大的基于密碼的加密算法
- JSSE 服務器端支持 SSL/TLS 服務器名稱指示 (SNI) 擴展
- 支持 AEAD 算法:SunJCE 提供程序得到了增強,支持 AES/GCM/NoPadding 密碼實現以及 GCM 算法參數。而且 SunJSSE 提供程序也得到了增強,支持基于 AEAD 模式的密碼套件。請參閱 Oracle 提供程序文檔,JEP 115。
- 密鑰庫增強,包括新的域密鑰庫類型
java.security.DomainLoadStoreParameter , 和為 keytool 實用程序新增的命令選項-importpassword
- SHA-224 消息摘要
- 增強了對 NSA Suite B 加密的支持
- 更好地支持高熵隨機數生成
- 新增了
java.security.cert.PKIXRevocationChecker 類,用于配置 X.509 證書的撤銷檢查
- 適用于 Windows 的 64 位 PKCS11
- Kerberos 5 重放緩存中新增了 rcache 類型
- 支持 Kerberos 5 協(xié)議轉換和受限委派
- 默認禁用 Kerberos 5 弱加密類型
- 適用于 GSS-API/Kerberos 5 機制的未綁定 SASL
- 針對多個主機名稱的 SASL 服務
- JNI 橋接至 Mac OS X 上的原生 JGSS
- SunJSSE 提供程序中支持更強大的臨時 DH 密鑰
- JSSE 中支持服務器端加密套件首選項自定義
-
- 本版本中實施了新的 Modena 主題。有關更多信息,請參閱 xexperience.com.
- 新的
SwingNode 類允許開發(fā)人員將 Swing 內容嵌入到 JavaFX 應用中。請參閱SwingNode javadoc 和 將 Swing 內容嵌入 JavaFX 應用中。.
- 新的 UI 控件包括
DatePicker 和 TreeTableView 控件。
-
javafx.print 程序包為 JavaFX Printing API 提供了公共類。有關更多信息,請參閱 javadoc
- 3D 圖形特性現在包括 3D 形狀、攝像頭、燈光、子場景、材料、挑選和抗鋸齒。JavaFX 3D 圖形庫中新增了
Shape3D (Box , Cylinder , MeshView 和 Sphere 子類 ), SubScene , Material , PickResult , LightBase (AmbientLight 和 PointLight 子類) , 和 SceneAntialiasing API 類。此版本中的Camera API 類也已更新。請參閱 javafx.scene.shape.Shape3D , javafx.scene.SubScene , javafx.scene.paint.Material , javafx.scene.input.PickResult 和, javafx.scene.SceneAntialiasing , 類的相關 javadoc 以及 JavaFX 3D 圖形入門 文檔。
-
WebView WebView 類包含新特性和改進。有關其他 HTML5 特性(包括 Web 套接字、Web 輔助進程和 Web 字體)的更多信息,請參閱
- 增強了文本支持,包括雙向文本、復雜文本腳本(如泰語和印地語控件)以及文本節(jié)點中的多行多樣式文本。
- 此版本添加了對 Hi-DPI 顯示的支持。
- CSS Styleable* 類已成為公共 API。有關更多信息,請參閱 javafx.css javadoc。
- 新的 ScheduledService 類允許自動重新啟動服務。
- JavaFX 現在可用于 ARM 平臺。適用于 ARM 的 JDK 包含 JavaFX 的基礎組件、圖形組件和控制組件。
-
- 可通過
jjs 命令來調用 Nashorn 引擎。
-
java 命令用于啟動 JavaFX 應用。
- 重新編寫了
java 手冊頁。
- 可通過
jdeps 命令行工具來分析類文件。
- Java Management Extensions (JMX) 支持遠程訪問診斷命令。
- The
jarsigner 工具提供了一個選項用于請求獲取時間戳機構 (TSA) 的簽名時間戳。
- Javac 工具
javac 命令的 -parameters 選項可用于存儲正式參數名稱,并啟用反射 API 來檢索正式參數名稱。
- 命令現已正確實施了 Java 語言規(guī)范 (JLS) 第 15.21 節(jié)中的相等運算符的類型規(guī)則。
javac
- The
javac 工具現在支持檢查 javadoc 注釋的內容,從而避免在運行javadoc 時生成的文件中產生各種問題,例如無效的 HTML 或可訪問性問題??赏ㄟ^新的-Xdoclint 選項來啟用此特性。有關更多詳細信息,請參閱運行“javac-X”時的輸出。此特性也可以在javac -X ". This feature is also available in the javadoc 工具中使用,并且默認啟用。
-
javac 工具現在支持根據需要生成原生標頭。這樣便無需在構建管道中單獨運行 javah 工具??梢允褂眯碌?-h 選項在 javac 中啟用此特性,該選項用于指定寫入頭文件的目錄。將為任何具有原生方法或者使用 java.lang.annotation.Native 類型的新批注的類進行批注的常量字段生成頭文件。
- Javadoc 工具
-
javadoc 工具支持新的 DocTree API,讓您可以將 Javadoc 注釋作為抽象語法樹來進行遍歷。
-
javadoc 工具支持新的 Javadoc Access API,讓您可以直接從 Java 應用中調用 Javadoc 工具,而無需執(zhí)行新的進程。有關更多信息,請參閱 javadoc 新特性 頁面。
-
javadoc 工具現在支持檢查javadoc 注釋的內容,從而避免在運行 javadoc 時生成的文件中產生各種問題,例如無效的 HTML 或可訪問性問題。此特性默認為啟用狀態(tài),可以通過新的-Xdoclint 選項加以控制。有關更多詳細信息,請參閱運行 "javadoc -X " 時的輸出。. javac 工具也支持此特性,但默認情況下并未啟用它。
-
- Unicode 增強,包括對 Unicode 6.2.0 的支持
- 采用 Unicode CLDR 數據和 java.locale.providers 系統(tǒng)屬性
- 新增日歷和區(qū)域設置 API
- 支持將自定義資源包作為擴展進行安裝
-
- 現在可以使用
URLPermission 允許沙盒小程序和 Java Web Start 應用連接回啟動它們的服務器。不再授予 SocketPermission 。
- 在所有安全級別,主 JAR 文件的 JAR 文件清單中都需要 Permissions 屬性。
- Date-Time 程序包 — 一組新程序包,提供全面的日期-時間模型。
-
- Rhino Javascript 引擎已被替換為 Nashorn JavaScript 引擎
-
- Pack200 支持 JSR 292 引入的常量池條目和新字節(jié)碼
- JDK8 支持 JSR-292、JSR-308 和 JSR-335 指定的類文件更改
-
- 全新的基于 Solaris 事件端口機制的面向 Solaris 的
SelectorProvider 實現。要使用它,請將系統(tǒng)屬性java.nio.channels.spi.Selector 的值設置為 sun.nio.ch.EventPortSelectorProvider .
- 減小
<JDK_HOME>/jre/lib/charsets.jar 文件的大小
- 提高了
java.lang.String(byte[], *) 構造函數和 java.lang.String.getBytes() 方法的性能。
-
- 并行數組排序
- 標準編碼和解碼 Base64
- 無符號算術支持
-
- 刪除了 JDBC-ODBC Bridge。
- JDBC 4.2 引入了新特性。
-
Java DB
-
- 已添加
java.net.URLPermission 類。
- 在
java.net.HttpURLConnection 類中,如果安裝了安全管理器,那么請求打開連接的調用需要權限。
-
-
java.util.concurrent 程序包中新增了一些類和接口。
- Methods have been added to the
java.util.concurrent.ConcurrentHashMap 類中新增了一些方法,支持基于新增流工具和 lambda 表達式的聚合操作。
-
java.util.concurrent.atomic 程序包中新增了一些類來支持可擴展、可更新的變量。
-
java.util.concurrent.ForkJoinPool 類中新增了一些方法來支持通用池。
- 新增的
java.util.concurrent.locks.StampedLock 類提供了一個基于能力的鎖,可通過三種模式來控制讀/寫訪問。
-
-
-
- JDK 8 包含 Java Mission Control 5.3。
|