JDK 8 中的新功能有:引入Lambda 表達式,提供Stream API,啟用客戶端TLS 1.2,支援AEAD 演算法,安全性更高,新的Modena 主題,新程式包等等
JDK 8 中的新功能
Java Platform, Standard Edition 8 是一個擁有豐富功能的主要版本。本文檔總結了 Java SE 8、JDK 8 以及 Oracle 的 Java SE 8 實作中的特性和增強。按一下元件名稱以取得該元件增強功能更詳細的描述。
Java 程式語言
Lambda 表達式是一個新的語言特性,已經在此版本中引入。此特性讓您可以將功能視為方法參數,或將程式碼視為資料。使用 Lambda 表達式,您可以更簡潔地表示單方法介面(稱為功能介面)的實例。
方法引用為已經具有名稱的方法提供了易於理解的 lambda 表達式。
預設方法允許將新功能新增至庫的介面中,並確保與為這些介面的舊版本編寫的程式碼的二進位相容性。
重複批註支援對同一個宣告或類型的使用多次套用相同的註解類型。
類型批註支援在使用類型的任何地方套用批註,而不僅限於宣告。與可插拔類型系統結合使用時,此特性可改善程式碼的類型檢查。
改進型別推論。
方法參數反射。
集合
#新的 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 類型
JavaFX
WebView 類別包含新功能和改進。有關其他 HTML5 特性(包括 Web 套接字、Web 輔助進程和 Web 字體)的更多信息,請參閱 HTML5 支援的特性。
增強了文字支持,包括雙向文字、複雜文字腳本(如泰語和印地語控制項)以及文字節點中的多行多樣式文字。
此版本新增了對 Hi-DPI 顯示的支援。
CSS Styleable* 類別已成為公用 API。有關更多信息,請參閱 Javafx.css javadoc。
新的 ScheduledService 類別允許自動重新啟動服務。
JavaFX 現在可用於 ARM 平台。適用於 ARM 的 JDK 包含 JavaFX 的基礎元件、圖形元件和控制元件。
工具
#可透過 jjs 指令來呼叫 Nashorn 引擎。
java 指令用於啟動 JavaFX 應用。
重新寫了 java 手冊頁。
可透過 jdeps 命令列工具來分析類別檔案。
Java Management Extensions (JMX) 支援遠端存取診斷命令。
jarsigner 工具提供了一個選項用於請求取得時間戳機構 (TSA) 的簽章時間戳記。
Javac 工具
#javac 指令的 -parameters 選項可用來儲存正式參數名稱,並啟用反射API 來檢索正式參數名稱。
javac 指令現在已正確實作了 Java 語言規格 (JLS) 第 15.21 節中的相等運算子的型別規則。
javac 工具現在支援檢查 javadoc 註解的內容,以避免在執行 javadoc 時產生的檔案中產生各種問題,例如無效的 HTML 或可存取性問題。可透過新的 Xdoclint 選項來啟用此特性。有關更多詳細信息,請參閱運行“javac-X”時的輸出。此特性也可以在 javadoc 工具中使用,並且預設為啟用。
javac 工具現在支援根據需求產生原生標頭。這樣便無需在建置管道中單獨執行 javah 工具。可使用新的 -h 選項在 javac 中啟用此特性,此選項用於指定寫入頭檔的目錄。將為任何具有原生方法或使用 java.lang.annotation.Native 類型的新批註的類別進行批註的常數欄位產生頭檔。
Javadoc 工具
#javadoc 工具支援新的 DocTree API,讓您可以將Javadoc 註解作為抽象語法樹來進行遍歷。
javadoc 工具支援新的 Javadoc Access API,讓您可以直接從 Java 應用程式中呼叫 Javadoc 工具,而無需執行新的進程。有關更多信息,請參閱 javadoc 新功能頁面。
javadoc 工具現在支援檢查 javadoc 註解的內容,以避免在執行 javadoc 時產生的檔案中產生各種問題,例如無效的 HTML 或可存取性問題。此特性預設為啟用狀態,可透過新的 -Xdoclint 選項加以控制。有關更多詳細信息,請參閱運行“javadoc -X”時的輸出。 javac 工具也支援此特性,但預設情況下並未啟用它。
國際化
#Unicode 增強,包含對Unicode 6.2.0 的支援
#採用Unicode CLDR 資料和java.locale.providers 系統屬性
#新增日曆和區域設定API
部署
Date-Time 套件
一組新套件,提供全面的日期-時間模型。腳本編寫
Rhino Javascript 引擎已被替換為 Nashorn JavaScript 引擎Pack200
IO 和NIO
提升了 java.lang.String(byte[], *) 建構子和 java.lang.String.getBytes() 方法的效能。
java.lang 和java.util 程式包
#並行數組排序
JDBC
JDK 8 包含 Java DB 10.10。
網路
#HotSpot
JDK 8 包含 Java Mission Control 5.3。
以上是jdk8新特性有哪些的詳細內容。更多資訊請關注PHP中文網其他相關文章!