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 類。此版本中的 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 引進了新功能。
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 類別提供了一個基於能力的鎖定,可透過三種模式控制讀取/寫入存取。
#HotSpot
- 新增的硬體內部函數以便使用高級加密標準(AES)。 UseAES 和 UseAESIntrinsics 標誌用於為 Intel 硬體啟用基於硬體的 AES 內部函數。硬體必須是 2010 年或更新的 Westmere 硬體。例如,要啟用硬體AES,請使用下列標誌:
- -XX: UseAES -XX: UseAESIntrinsics
- -XX:-UseAES -XX:-UseAESIntrinsics
- 方法呼叫的字節碼指令支援 Java 程式語言中的預設方法。
JDK 8 包含 Java Mission Control 5.3。
以上是jdk8新特性有哪些的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

PHP8.3發布:新功能一覽隨著技術的不斷發展和需求的不斷變化,程式語言也不斷更新和改進。作為一種廣泛應用於網頁開發的腳本語言,PHP一直在不斷進步,為開發者提供更強大和高效的工具。最近發布的PHP8.3版本帶來了許多期待已久的新功能和改進,以下讓我們來看看這些新特性的一覽。非空屬性的初始化在過去的PHP版本中,如果一個類別的屬性沒有明確賦值,它的值

深入解析PHP8的新特性,幫助您掌握最新技術隨著時間的推移,PHP程式語言一直在不斷演進和改進。最近發布的PHP8版本為開發者提供了許多令人興奮的新功能和改進,為我們的開發工作帶來了更多便利和效率。在本文中,我們將深入解析PHP8的新特性,並提供具體的程式碼範例,旨在幫助您更好地掌握這些最新的技術。 JIT編譯器PHP8引進了JIT(Just-In-Time)編

php8新特性有JIT 編譯器、型別推導、命名參數、聯合型別、屬性、錯誤處理改進、非同步程式支援、新的標準函式庫函數和匿名類的擴充等。詳細介紹:1、JIT編譯器,PHP8引入了JIT編譯器,這是一個重要的效能改進,JIT編譯器可以對一些高頻執行的程式碼進行即時編譯和最佳化,從而提高運行速度;2、類型推導,PHP8引入了類型推導功能,允許開發者在宣告變數時自動推導出變數的類型等等。

CSS3的新功能一覽:如何使用CSS3實現過渡效果CSS3作為CSS的最新版本,在眾多新功能中,最有趣和實用的應該是過渡效果(transition)。過渡效果可以讓我們的頁面在互動時更加平滑、更漂亮,為使用者帶來良好的視覺體驗。本文將介紹CSS3過渡效果的基本用法,並附有對應的程式碼範例。 transition-property屬性:指定需要過渡的CSS屬性過渡效果

【Go語言新特性解讀:讓程式設計更有效率,需要具體程式碼範例】近年來,Go語言在軟體開發領域備受關注,其簡潔、高效的設計理念吸引了越來越多的開發者。作為一種靜態類型的程式語言,Go語言不斷推出新的功能以提高開發效率,簡化程式碼編寫過程。本文將深入解讀Go語言最新的特性,探討如何透過具體的程式碼範例來體驗這些新特性帶來的便利性。模組化開發(GoModules)Go語言從1

CSS3的新功能一覽:如何使用CSS3實現水平居中佈局在網頁設計和佈局中,水平居中佈局是一項常見的需求。過去,我們經常使用複雜的JavaScript或CSS技巧來實現此目的。然而,CSS3引入了一些新的特性,使得水平居中佈局更加簡單和靈活。本文將介紹一些CSS3的新特性,並提供一些程式碼範例,示範如何使用CSS3實現水平居中佈局。一、使用flexbox佈局fle

PHP8.1引進的新的Redis擴充隨著網路的快速發展,大量的資料需要儲存和處理。為了提高資料處理的效率和效能,快取成為了一個不可或缺的部分。而在PHP開發中,Redis作為一種高效能的鍵值對儲存系統,被廣泛應用於快取和資料儲存的場景。為了進一步提升Redis在PHP的使用體驗,PHP8.1引進了新的Redis擴展,本文將介紹這項擴展的新增功能,並給予

go語言的新特性有:1、Go模組,用於管理Go語言專案的依賴關係;2、錯誤處理,增加了一個新的錯誤類型error,使得錯誤處理更加靈活和簡潔;3、上下文包,用於在goroutine之間傳遞請求範圍的值;4、嵌入,即一個結構體可以嵌入到另一個結構體中;5、同步包,更好地控制goroutine之間的同步和通信;6、錯誤值,更好地區分不同類型的錯誤;7、泛型,讓開發者編寫更靈活。
