小編給大家分享一下jdk8有什么新特性,希望大家閱讀完這篇文章后大所收獲,下面讓我們一起去探討吧!
青銅峽ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場(chǎng)景,ssl證書(shū)未來(lái)市場(chǎng)廣闊!成為成都創(chuàng)新互聯(lián)公司的ssl證書(shū)銷(xiāo)售渠道,可以享受市場(chǎng)價(jià)格4-6折優(yōu)惠!如果有意向歡迎電話(huà)聯(lián)系或者加微信:028-86922220(備注:SSL證書(shū)合作)期待與您的合作!
JDK 8 中的新特性有:引入Lambda 表達(dá)式,提供Stream API,啟用客戶(hù)端 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)。單擊組件名稱(chēng)可獲取該組件增強(qiáng)功能更詳細(xì)的描述。
Java 編程語(yǔ)言
Lambda 表達(dá)式是一個(gè)新的語(yǔ)言特性,已經(jīng)在此版本中引入。該特性讓您可以將功能視為方法參數(shù),或者將代碼視為數(shù)據(jù)。使用 Lambda 表達(dá)式,您可以更簡(jiǎn)潔地表示單方法接口(稱(chēng)為功能接口)的實(shí)例。
方法引用為已經(jīng)具有名稱(chēng)的方法提供了易于理解的 lambda 表達(dá)式。
默認(rèn)方法允許將新功能添加到庫(kù)的接口中,并確保與為這些接口的舊版本編寫(xiě)的代碼的二進(jìn)制兼容性。
重復(fù)批注支持對(duì)同一個(gè)聲明或類(lèi)型的使用多次應(yīng)用相同的批注類(lèi)型。
類(lèi)型批注支持在使用類(lèi)型的任何地方應(yīng)用批注,而不僅限于聲明。與可插拔類(lèi)型系統(tǒng)結(jié)合使用時(shí),此特性可改進(jìn)代碼的類(lèi)型檢查。
改進(jìn)類(lèi)型推斷。
方法參數(shù)反射。
集合
新的 java.util.stream 包中的類(lèi)提供了一個(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)啟用客戶(hù)端 TLS 1.2
AccessController.doPrivileged 的新變體支持代碼斷言其權(quán)限的子集,而不會(huì)阻止完全遍歷堆棧來(lái)檢查其他權(quán)限
更強(qiáng)大的基于密碼的加密算法
JSSE 服務(wù)器端支持 SSL/TLS 服務(wù)器名稱(chēng)指示 (SNI) 擴(kuò)展
支持 AEAD 算法:SunJCE 提供程序得到了增強(qiáng),支持 AES/GCM/NoPadding 密碼實(shí)現(xiàn)以及 GCM 算法參數(shù)。而且 SunJSSE 提供程序也得到了增強(qiáng),支持基于 AEAD 模式的密碼套件。請(qǐng)參閱 Oracle 提供程序文檔,JEP 115。
密鑰庫(kù)增強(qiáng),包括新的域密鑰庫(kù)類(lèi)型 java.security.DomainLoadStoreParameter 和為 keytool 實(shí)用程序新增的命令選項(xiàng) -importpassword
SHA-224 消息摘要
增強(qiáng)了對(duì) NSA Suite B 加密的支持
更好地支持高熵隨機(jī)數(shù)生成
新增了 java.security.cert.PKIXRevocationChecker 類(lèi),用于配置 X.509 證書(shū)的撤銷(xiāo)檢查
適用于 Windows 的 64 位 PKCS11
Kerberos 5 重放緩存中新增了 rcache 類(lèi)型
支持 Kerberos 5 協(xié)議轉(zhuǎn)換和受限委派
默認(rèn)禁用 Kerberos 5 弱加密類(lèi)型
適用于 GSS-API/Kerberos 5 機(jī)制的未綁定 SASL
針對(duì)多個(gè)主機(jī)名稱(chēng)的 SASL 服務(wù)
JNI 橋接至 Mac OS X 上的原生 JGSS
SunJSSE 提供程序中支持更強(qiáng)大的臨時(shí) DH 密鑰
JSSE 中支持服務(wù)器端加密套件首選項(xiàng)自定義
JavaFX
本版本中實(shí)施了新的 Modena 主題。
新的 SwingNode 類(lèi)允許開(kāi)發(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 提供了公共類(lèi)。有關(guān)更多信息,請(qǐng)參閱 javadoc。
3D 圖形特性現(xiàn)在包括 3D 形狀、攝像頭、燈光、子場(chǎng)景、材料、挑選和抗鋸齒。JavaFX 3D 圖形庫(kù)中新增了 Shape3D(Box、Cylinder、MeshView 和 Sphere 子類(lèi))、SubScene、Material、PickResult、LightBase(AmbientLight 和 PointLight子類(lèi))和 SceneAntialiasing API 類(lèi)。此版本中的 Camera API 類(lèi)也已更新。請(qǐng)參閱 javafx.scene.shape.Shape3D、javafx.scene.SubScene、javafx.scene.paint.Material、javafx.scene.input.PickResult 和 javafx.scene.SceneAntialiasing 類(lèi)的相關(guān) javadoc 以及 JavaFX 3D 圖形入門(mén)文檔。
WebView 類(lèi)包含新特性和改進(jìn)。有關(guān)其他 HTML5 特性(包括 Web 套接字、Web 輔助進(jìn)程和 Web 字體)的更多信息,請(qǐng)參閱 HTML5 支持的特性。
增強(qiáng)了文本支持,包括雙向文本、復(fù)雜文本腳本(如泰語(yǔ)和印地語(yǔ)控件)以及文本節(jié)點(diǎn)中的多行多樣式文本。
此版本添加了對(duì) Hi-DPI 顯示的支持。
CSS Styleable* 類(lèi)已成為公共 API。有關(guān)更多信息,請(qǐng)參閱 Javafx.css javadoc。
新的 ScheduledService 類(lèi)允許自動(dòng)重新啟動(dòng)服務(wù)。
JavaFX 現(xiàn)在可用于 ARM 平臺(tái)。適用于 ARM 的 JDK 包含 JavaFX 的基礎(chǔ)組件、圖形組件和控制組件。
工具
可通過(guò) jjs 命令來(lái)調(diào)用 Nashorn 引擎。
java 命令用于啟動(dòng) JavaFX 應(yīng)用。
重新編寫(xiě)了 java 手冊(cè)頁(yè)。
可通過(guò) jdeps 命令行工具來(lái)分析類(lèi)文件。
Java Management Extensions (JMX) 支持遠(yuǎn)程訪問(wèn)診斷命令。
jarsigner 工具提供了一個(gè)選項(xiàng)用于請(qǐng)求獲取時(shí)間戳機(jī)構(gòu) (TSA) 的簽名時(shí)間戳。
Javac 工具
javac 命令的 -parameters 選項(xiàng)可用于存儲(chǔ)正式參數(shù)名稱(chēng),并啟用反射 API 來(lái)檢索正式參數(shù)名稱(chēng)。
javac 命令現(xiàn)已正確實(shí)施了 Java 語(yǔ)言規(guī)范 (JLS) 第 15.21 節(jié)中的相等運(yùn)算符的類(lèi)型規(guī)則。
javac 工具現(xiàn)在支持檢查 javadoc 注釋的內(nèi)容,從而避免在運(yùn)行 javadoc 時(shí)生成的文件中產(chǎn)生各種問(wèn)題,例如無(wú)效的 HTML 或可訪問(wèn)性問(wèn)題??赏ㄟ^(guò)新的 Xdoclint 選項(xiàng)來(lái)啟用此特性。有關(guān)更多詳細(xì)信息,請(qǐng)參閱運(yùn)行“javac-X”時(shí)的輸出。此特性也可以在 javadoc 工具中使用,并且默認(rèn)啟用。
javac 工具現(xiàn)在支持根據(jù)需要生成原生標(biāo)頭。這樣便無(wú)需在構(gòu)建管道中單獨(dú)運(yùn)行 javah 工具??梢允褂眯碌?-h 選項(xiàng)在 javac 中啟用此特性,該選項(xiàng)用于指定寫(xiě)入頭文件的目錄。將為任何具有原生方法或者使用 java.lang.annotation.Native 類(lèi)型的新批注的類(lèi)進(jìn)行批注的常量字段生成頭文件。
Javadoc 工具
javadoc 工具支持新的 DocTree API,讓您可以將 Javadoc 注釋作為抽象語(yǔ)法樹(shù)來(lái)進(jìn)行遍歷。
javadoc 工具支持新的 Javadoc Access API,讓您可以直接從 Java 應(yīng)用中調(diào)用 Javadoc 工具,而無(wú)需執(zhí)行新的進(jìn)程。有關(guān)更多信息,請(qǐng)參閱 javadoc 新特性頁(yè)面。
javadoc 工具現(xiàn)在支持檢查 javadoc 注釋的內(nèi)容,從而避免在運(yùn)行 javadoc 時(shí)生成的文件中產(chǎn)生各種問(wèn)題,例如無(wú)效的 HTML 或可訪問(wèn)性問(wèn)題。此特性默認(rèn)為啟用狀態(tài),可以通過(guò)新的 -Xdoclint 選項(xiàng)加以控制。有關(guān)更多詳細(xì)信息,請(qǐng)參閱運(yùn)行“javadoc -X”時(shí)的輸出。javac 工具也支持此特性,但默認(rèn)情況下并未啟用它。
國(guó)際化
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í)間模型。
腳本編寫(xiě)
Rhino Javascript 引擎已被替換為 Nashorn JavaScript 引擎
Pack200
Pack200 支持 JSR 292 引入的常量池條目和新字節(jié)碼
JDK8 支持 JSR-292、JSR-308 和 JSR-335 指定的類(lèi)文件更改
IO 和 NIO
全新的基于 Solaris 事件端口機(jī)制的面向 Solaris 的 SelectorProvider 實(shí)現(xiàn)。要使用它,請(qǐng)將系統(tǒng)屬性 java.nio.channels.spi.Selector 的值設(shè)置為 sun.nio.ch.EventPortSelectorProvider。
減小
提高了 java.lang.String(byte[], *) 構(gòu)造函數(shù)和 java.lang.String.getBytes() 方法的性能。
java.lang 和 java.util 程序包
并行數(shù)組排序
標(biāo)準(zhǔn)編碼和解碼 Base64
無(wú)符號(hào)算術(shù)支持
JDBC
刪除了 JDBC-ODBC Bridge。
JDBC 4.2 引入了新特性。
Java DB
JDK 8 包含 Java DB 10.10。
網(wǎng)絡(luò)
已添加 java.net.URLPermission 類(lèi)。
在 java.net.HttpURLConnection 類(lèi)中,如果安裝了安全管理器,那么請(qǐng)求打開(kāi)連接的調(diào)用需要權(quán)限。
并發(fā)性
java.util.concurrent 程序包中新增了一些類(lèi)和接口。
java.util.concurrent.ConcurrentHashMap 類(lèi)中新增了一些方法,支持基于新增流工具和 lambda 表達(dá)式的聚合操作。
java.util.concurrent.atomic 程序包中新增了一些類(lèi)來(lái)支持可擴(kuò)展、可更新的變量。
java.util.concurrent.ForkJoinPool 類(lèi)中新增了一些方法來(lái)支持通用池。
新增的 java.util.concurrent.locks.StampedLock 類(lèi)提供了一個(gè)基于能力的鎖,可通過(guò)三種模式來(lái)控制讀/寫(xiě)訪問(wèn)。
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 編程語(yǔ)言中的默認(rèn)方法。
Java Mission Control 5.3 版本說(shuō)明
JDK 8 包含 Java Mission Control 5.3。
看完了這篇文章,相信你對(duì)jdk8有什么新特性有了一定的了解,想了解更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!