您好,登錄后才能下訂單哦!
小編給大家分享一下jdk8有什么新特性,希望大家閱讀完這篇文章后大所收獲,下面讓我們一起去探討吧!
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 類型
支持 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 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 類包含新特性和改進。有關其他 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。
減小 <JDK_HOME>/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有什么新特性有了一定的了解,想了解更多相關知識,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。