溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

jdk8有什么新特性

發(fā)布時(shí)間:2020-10-29 11:27:50 來源:億速云 閱讀:283 作者:小新 欄目:編程語言

小編給大家分享一下jdk8有什么新特性,希望大家閱讀完這篇文章后大所收獲,下面讓我們一起去探討吧!

JDK 8 中的新特性有:引入Lambda 表達(dá)式,提供Stream API,啟用客戶端 TLS 1.2,支持 AEAD 算法,安全性更高,新的 Modena 主題,新程序包等等

JDK 8 中的新特性

Java Platform, Standard Edition 8 是一個(gè)擁有豐富特性的主要版本。本文檔總結(jié)了 Java SE 8、JDK 8 以及 Oracle 的 Java SE 8 實(shí)現(xiàn)中的特性和增強(qiáng)。單擊組件名稱可獲取該組件增強(qiáng)功能更詳細(xì)的描述。

Java 編程語言

  • Lambda 表達(dá)式是一個(gè)新的語言特性,已經(jīng)在此版本中引入。該特性讓您可以將功能視為方法參數(shù),或者將代碼視為數(shù)據(jù)。使用 Lambda 表達(dá)式,您可以更簡潔地表示單方法接口(稱為功能接口)的實(shí)例。

  • 方法引用為已經(jīng)具有名稱的方法提供了易于理解的 lambda 表達(dá)式。

  • 默認(rèn)方法允許將新功能添加到庫的接口中,并確保與為這些接口的舊版本編寫的代碼的二進(jìn)制兼容性。

  • 重復(fù)批注支持對(duì)同一個(gè)聲明或類型的使用多次應(yīng)用相同的批注類型。

  • 類型批注支持在使用類型的任何地方應(yīng)用批注,而不僅限于聲明。與可插拔類型系統(tǒng)結(jié)合使用時(shí),此特性可改進(jìn)代碼的類型檢查。

  • 改進(jìn)類型推斷。

  • 方法參數(shù)反射。

集合

  • 新的 java.util.stream 包中的類提供了一個(gè) Stream API,支持對(duì)元素流進(jìn)行函數(shù)式操作。Stream API 集成在 Collections API 中,可以對(duì)集合進(jìn)行批量操作,例如順序或并行的 map-reduce 轉(zhuǎn)換。

  • 針對(duì)存在鍵沖突的 HashMap 的性能改進(jìn)

緊湊 profile

包含 Java SE 平臺(tái)的預(yù)定義子集,并且支持不需要在小型設(shè)備上部署和運(yùn)行整個(gè)平臺(tái)的應(yīng)用。

安全性

  • 默認(rèn)啟用客戶端 TLS 1.2

  • AccessController.doPrivileged 的新變體支持代碼斷言其權(quán)限的子集,而不會(huì)阻止完全遍歷堆棧來檢查其他權(quán)限

  • 更強(qiáng)大的基于密碼的加密算法

  • JSSE 服務(wù)器端支持 SSL/TLS 服務(wù)器名稱指示 (SNI) 擴(kuò)展

  • 支持 AEAD 算法:SunJCE 提供程序得到了增強(qiáng),支持 AES/GCM/NoPadding 密碼實(shí)現(xiàn)以及 GCM 算法參數(shù)。而且 SunJSSE 提供程序也得到了增強(qiáng),支持基于 AEAD 模式的密碼套件。請(qǐng)參閱 Oracle 提供程序文檔,JEP 115。

  • 密鑰庫增強(qiáng),包括新的域密鑰庫類型 java.security.DomainLoadStoreParameter 和為 keytool 實(shí)用程序新增的命令選項(xiàng) -importpassword

  • SHA-224 消息摘要

  • 增強(qiáng)了對(duì) NSA Suite B 加密的支持

  • 更好地支持高熵隨機(jī)數(shù)生成

  • 新增了 java.security.cert.PKIXRevocationChecker 類,用于配置 X.509 證書的撤銷檢查

  • 適用于 Windows 的 64 位 PKCS11

  • Kerberos 5 重放緩存中新增了 rcache 類型

  • 支持 Kerberos 5 協(xié)議轉(zhuǎn)換和受限委派

  • 默認(rèn)禁用 Kerberos 5 弱加密類型

  • 適用于 GSS-API/Kerberos 5 機(jī)制的未綁定 SASL

  • 針對(duì)多個(gè)主機(jī)名稱的 SASL 服務(wù)

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

  • SunJSSE 提供程序中支持更強(qiáng)大的臨時(shí) DH 密鑰

  • JSSE 中支持服務(wù)器端加密套件首選項(xiàng)自定義

JavaFX

  • 本版本中實(shí)施了新的 Modena 主題。

  • 新的 SwingNode 類允許開發(fā)人員將 Swing 內(nèi)容嵌入到 JavaFX 應(yīng)用中。請(qǐng)參閱 SwingNode javadoc 和將 Swing 內(nèi)容嵌入 JavaFX 應(yīng)用中。

  • 新的 UI 控件包括 DatePicker 和 TreeTableView 控件。

  • javafx.print 程序包為 JavaFX Printing API 提供了公共類。有關(guān)更多信息,請(qǐng)參閱 javadoc。

  • 3D 圖形特性現(xiàn)在包括 3D 形狀、攝像頭、燈光、子場景、材料、挑選和抗鋸齒。JavaFX 3D 圖形庫中新增了 Shape3D(Box、Cylinder、MeshView 和 Sphere 子類)、SubScene、Material、PickResult、LightBase(AmbientLight 和 PointLight子類)和 SceneAntialiasing API 類。此版本中的 Camera API 類也已更新。請(qǐng)參閱 javafx.scene.shape.Shape3D、javafx.scene.SubScene、javafx.scene.paint.Material、javafx.scene.input.PickResult 和 javafx.scene.SceneAntialiasing 類的相關(guān) javadoc 以及 JavaFX 3D 圖形入門文檔。

  • WebView 類包含新特性和改進(jìn)。有關(guān)其他 HTML5 特性(包括 Web 套接字、Web 輔助進(jìn)程和 Web 字體)的更多信息,請(qǐng)參閱 HTML5 支持的特性。

  • 增強(qiáng)了文本支持,包括雙向文本、復(fù)雜文本腳本(如泰語和印地語控件)以及文本節(jié)點(diǎn)中的多行多樣式文本。

  • 此版本添加了對(duì) Hi-DPI 顯示的支持。

  • CSS Styleable* 類已成為公共 API。有關(guān)更多信息,請(qǐng)參閱 Javafx.css javadoc。

  • 新的 ScheduledService 類允許自動(dòng)重新啟動(dòng)服務(wù)。

  • JavaFX 現(xiàn)在可用于 ARM 平臺(tái)。適用于 ARM 的 JDK 包含 JavaFX 的基礎(chǔ)組件、圖形組件和控制組件。

工具

  • 可通過 jjs 命令來調(diào)用 Nashorn 引擎。

  • java 命令用于啟動(dòng) JavaFX 應(yīng)用。

  • 重新編寫了 java 手冊頁。

  • 可通過 jdeps 命令行工具來分析類文件。

  • Java Management Extensions (JMX) 支持遠(yuǎn)程訪問診斷命令。

  • jarsigner 工具提供了一個(gè)選項(xiàng)用于請(qǐng)求獲取時(shí)間戳機(jī)構(gòu) (TSA) 的簽名時(shí)間戳。

Javac 工具

  • javac 命令的 -parameters 選項(xiàng)可用于存儲(chǔ)正式參數(shù)名稱,并啟用反射 API 來檢索正式參數(shù)名稱。

  • javac 命令現(xiàn)已正確實(shí)施了 Java 語言規(guī)范 (JLS) 第 15.21 節(jié)中的相等運(yùn)算符的類型規(guī)則。

  • javac 工具現(xiàn)在支持檢查 javadoc 注釋的內(nèi)容,從而避免在運(yùn)行 javadoc 時(shí)生成的文件中產(chǎn)生各種問題,例如無效的 HTML 或可訪問性問題??赏ㄟ^新的 Xdoclint 選項(xiàng)來啟用此特性。有關(guān)更多詳細(xì)信息,請(qǐng)參閱運(yùn)行“javac-X”時(shí)的輸出。此特性也可以在 javadoc 工具中使用,并且默認(rèn)啟用。

  • javac 工具現(xiàn)在支持根據(jù)需要生成原生標(biāo)頭。這樣便無需在構(gòu)建管道中單獨(dú)運(yùn)行 javah 工具??梢允褂眯碌?-h 選項(xiàng)在 javac 中啟用此特性,該選項(xiàng)用于指定寫入頭文件的目錄。將為任何具有原生方法或者使用 java.lang.annotation.Native 類型的新批注的類進(jìn)行批注的常量字段生成頭文件。

Javadoc 工具

  • javadoc 工具支持新的 DocTree API,讓您可以將 Javadoc 注釋作為抽象語法樹來進(jìn)行遍歷。

  • javadoc 工具支持新的 Javadoc Access API,讓您可以直接從 Java 應(yīng)用中調(diào)用 Javadoc 工具,而無需執(zhí)行新的進(jìn)程。有關(guān)更多信息,請(qǐng)參閱 javadoc 新特性頁面。

  • javadoc 工具現(xiàn)在支持檢查 javadoc 注釋的內(nèi)容,從而避免在運(yùn)行 javadoc 時(shí)生成的文件中產(chǎn)生各種問題,例如無效的 HTML 或可訪問性問題。此特性默認(rèn)為啟用狀態(tài),可以通過新的 -Xdoclint 選項(xiàng)加以控制。有關(guān)更多詳細(xì)信息,請(qǐng)參閱運(yùn)行“javadoc -X”時(shí)的輸出。javac 工具也支持此特性,但默認(rèn)情況下并未啟用它。

國際化

  • Unicode 增強(qiáng),包括對(duì) Unicode 6.2.0 的支持

  • 采用 Unicode CLDR 數(shù)據(jù)和 java.locale.providers 系統(tǒng)屬性

  • 新增日歷和區(qū)域設(shè)置 API

  • 支持將自定義資源包作為擴(kuò)展進(jìn)行安裝

部署

  • 現(xiàn)在可以使用 URLPermission 允許沙盒小程序和 Java Web Start 應(yīng)用連接回啟動(dòng)它們的服務(wù)器。不再授予 SocketPermission。

  • 在所有安全級(jí)別,主 JAR 文件的 JAR 文件清單中都需要 Permissions 屬性。

Date-Time 程序包

一組新程序包,提供全面的日期-時(shí)間模型。

腳本編寫

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

Pack200

  • Pack200 支持 JSR 292 引入的常量池條目和新字節(jié)碼

  • JDK8 支持 JSR-292、JSR-308 和 JSR-335 指定的類文件更改

IO 和 NIO

  • 全新的基于 Solaris 事件端口機(jī)制的面向 Solaris 的 SelectorProvider 實(shí)現(xiàn)。要使用它,請(qǐng)將系統(tǒng)屬性 java.nio.channels.spi.Selector 的值設(shè)置為 sun.nio.ch.EventPortSelectorProvider。

  • 減小 <JDK_HOME>/jre/lib/charsets.jar 文件的大小

  • 提高了 java.lang.String(byte[], *) 構(gòu)造函數(shù)和 java.lang.String.getBytes() 方法的性能。

java.lang 和 java.util 程序包

  • 并行數(shù)組排序

  • 標(biāo)準(zhǔn)編碼和解碼 Base64

  • 無符號(hào)算術(shù)支持

JDBC

  • 刪除了 JDBC-ODBC Bridge。

  • JDBC 4.2 引入了新特性。

Java DB

JDK 8 包含 Java DB 10.10。

網(wǎng)絡(luò)

  • 已添加 java.net.URLPermission 類。

  • 在 java.net.HttpURLConnection 類中,如果安裝了安全管理器,那么請(qǐng)求打開連接的調(diào)用需要權(quán)限。

并發(fā)性

  • java.util.concurrent 程序包中新增了一些類和接口。

  • java.util.concurrent.ConcurrentHashMap 類中新增了一些方法,支持基于新增流工具和 lambda 表達(dá)式的聚合操作。

  • java.util.concurrent.atomic 程序包中新增了一些類來支持可擴(kuò)展、可更新的變量。

  • java.util.concurrent.ForkJoinPool 類中新增了一些方法來支持通用池。

  • 新增的 java.util.concurrent.locks.StampedLock 類提供了一個(gè)基于能力的鎖,可通過三種模式來控制讀/寫訪問。

Java XML - JAXP

HotSpot

  • 新增的硬件內(nèi)部函數(shù)以便使用高級(jí)加密標(biāo)準(zhǔn) (AES)。UseAES 和 UseAESIntrinsics 標(biāo)志用于為 Intel 硬件啟用基于硬件的 AES 內(nèi)部函數(shù)。硬件必須是 2010 年或更新的 Westmere 硬件。例如,要啟用硬件 AES,請(qǐng)使用以下標(biāo)志:

  • -XX:+UseAES -XX:+UseAESIntrinsics

  • 要禁用硬件 AES,請(qǐng)使用以下標(biāo)志:

  • -XX:-UseAES -XX:-UseAESIntrinsics

  • 刪除了 PermGen。

  • 方法調(diào)用的字節(jié)碼指令支持 Java 編程語言中的默認(rèn)方法。

Java Mission Control 5.3 版本說明

JDK 8 包含 Java Mission Control 5.3。

看完了這篇文章,相信你對(duì)jdk8有什么新特性有了一定的了解,想了解更多相關(guān)知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI