首頁 > Java > java教程 > 主體

jdk8新特性有哪些

清浅
發布: 2019-04-24 17:40:35
原創
34055 人瀏覽過

JDK 8 中的新功能有:引入Lambda 表達式,提供Stream API,啟用客戶端TLS 1.2,支援AEAD 演算法,安全性更高,新的Modena 主題,新程式包等等

jdk8新特性有哪些

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 類型

  • ##支援Kerberos 5 協定轉換與受限委派

  • 預設停用Kerberos 5 弱加密類型

  • #適用於GSS-API/Kerberos 5 機制的未綁定SASL

  • #針對多個主機名稱的SASL 服務

  • JNI 橋接至Mac OS X 上的原生JGSS

  • SunJSSE 提供者中支援更強大的臨時DH 金鑰

  • JSSE 中支援伺服器端加密套件首選項自訂

JavaFX

  • 本版本中實作了新的Modena 主題。

  • 新的 SwingNode 類別可讓開發人員將 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 類。此版本中的 Camera API 類別也已更新。請參閱 javafx.scene.shape.Shape3D、javafx.scene.SubScene、javafx.scene.paint.Material、javafx.scene.input.PickResult 和 javafx.scene.SceneAntialiasing 文件的相關 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

  • #支援將自訂資源包作為擴充功能進行安裝

部署

  • #現在可以使用 URLPermission 允許沙盒小程式和Java Web Start 應用程式連接回啟動它們的伺服器。不再授予 SocketPermission。

  • 在所有安全級別,主 JAR 檔案的 JAR 檔案清單中都需要 Permissions 屬性。

Date-Time 套件

 一組新套件,提供全面的日期-時間模型。

腳本編寫

Rhino Javascript 引擎已被替換為 Nashorn JavaScript 引擎

Pack200

  • #Pack200 支援JSR 292 引入的常數池條目和新字節碼

  • JDK8 支援JSR-292、JSR-308 和JSR-335 指定的類別文件變更

IO 和NIO

  • #全新的基於Solaris 事件連接埠機制的面向Solaris 的 SelectorProvider 實作。要使用它,請將系統屬性 java.nio.channels.spi.Selector 的值設為 sun.nio.ch.EventPortSelectorProvider。

  • 減少 /jre/lib/charsets.jar 檔案的大小

  • 提升了 java.lang.String(byte[], *) 建構子和 java.lang.String.getBytes() 方法的效能。

java.lang 和java.util 程式包

  • #並行數組排序

  • ##標準編碼和解碼Base64

  • 無符號算術支援

JDBC

    ##刪除了JDBC-ODBC Bridge。
  • JDBC 4.2 引進了新功能。
Java DB

JDK 8 包含 Java DB 10.10。

網路

    已新增 java.net.URLPermission 類別。
  • 在 java.net.HttpURLConnection 類別中,如果安裝了安全管理器,那麼請求開啟連線的呼叫需要權限。
並發性

    #java.util.concurrent 套件中新增了一些類別和介面。
  • java.util.concurrent.ConcurrentHashMap 類別中新增了一些方法,支援基於新增流工具和 lambda 表達式的聚合操作。
  • java.util.concurrent.atomic 套件中新增了一些類別來支援可擴充​​、可更新的變數。
  • java.util.concurrent.ForkJoinPool 類別中新增了一些方法來支援通用池。
  • 新增的 java.util.concurrent.locks.StampedLock 類別提供了一個基於能力的鎖定,可透過三種模式控制讀取/寫入存取。
Java XML - JAXP

#HotSpot

    新增的硬體內部函數以便使用高級加密標準(AES)。 UseAES 和 UseAESIntrinsics 標誌用於為 Intel 硬體啟用基於硬體的 AES 內部函數。硬體必須是 2010 年或更新的 Westmere 硬體。例如,要啟用硬體AES,請使用下列標誌:
  • -XX: UseAES -XX: UseAESIntrinsics

  • #要停用硬件AES,請使用以下標誌:
  • -XX:-UseAES -XX:-UseAESIntrinsics

  • 刪除了PermGen。
  • 方法呼叫的字節碼指令支援 Java 程式語言中的預設方法。
Java Mission Control 5.3 版本說明

JDK 8 包含 Java Mission Control 5.3。

以上是jdk8新特性有哪些的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!