原創翻譯-Java 8新特性

徐家三少發表於2019-02-28

前言

  本篇翻譯自oracle官網的JDK8 新特性,但是並不包含 JavaFx和安全方面的更新。

JAVA8中的新特性

  Java平臺的標準版第8版本是一個重大的釋出版本。這篇文件概述了JAVA SE8 和 JDK8中甲骨文的Java SE 8的實現的特性和增強功能。點選各個模組的名字可以看到模組的增強的詳細資訊。

Java程式語言

  • Lambda表示式是Java 8 中的新增的語言特性,已經被開發到這個版本中。他們允許函數語言程式設計。Lambda允許將函式當做一個引數對待,或者將程式碼當做資料對待。Lambda表示式讓你對單方法的例項(功能性介面)更加簡潔。

  • Lambda表示式中的方法引用讓已經含有名字的方法更加容易閱讀。

  • 預設方法允許在介面或者庫中確保舊版本二進位制包中介面的相容性(default關鍵字)。

  • 重複註解(@Repeatable)允許同樣的註解註解被重複宣告或者使用多次。重複註解

  • 型別註解現在可以在任何一處是型別的地方使用。而不再是宣告的地方。 配合一些可插拔的型別系統(外掛,額外引入的包)大大提高了你程式碼的型別檢查。
    型別註解

  • 提高了型別推導 java 8 中的型別推導

  • 方法引數反射 (Method parameter reflection)

集合

  • java.util.stream 提供了流API以便實現函式風格的流程式設計操作。流API整合到了集合API中間。對集合中的大塊資料操作,比如排序和併發的 map-reduce 轉換。流API
  • 提高了HashMap中雜湊衝突的效能。

可緊湊配置

  可以使用配置檔案來決定包含預定義的Java SE平臺的子集,並確保應用程式不需要整個平臺部署和並且適合小型裝置上執行。

Javadoc 工具

  • javadoc工具支援新的DocTree API,使您可以像抽象語法樹一樣遍歷 javadoc註釋。

  • javadoc 工具使用了新的 Javadoc 訪問API,使得可以直接在應用程式內部直接使用Java Doc工具,而不用新開闢一個執行緒。訪問javadoc新特性頁面獲取更多資訊。

  • javadoc 工具現在支援對javadoc執行期間對生成註釋檢查,比如在生成的註釋中間出現的非法HTML語法和可訪問性問題。這個特性是預設開啟,也可以由新的-X doclint選項控制。有關詳細資訊,請參見執行javadoc – x”的輸出。這個功能也在javac工具中,儘管它在預設情況下不啟用。

國際化

  • 支援更高階別的 Unicode,包括 Unicode 6.2.0

  • 提供 Unicode CLDR 和 java.locale.providers 的系統屬性

  • 新的 日曆和 本地化API

  • 允許使用自定義資源包。

指令碼

  Rhino JavaScript 指令碼引擎被移除, 取而代之的是Nashorn JavaScript 指令碼引擎。

Pack200

  pack200支援常量池入口,引入JSR 292規定的新的的位元組碼
JDK8 支援 JSR-292, JSR-308 and 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 包

日期與時間

  java8 新增了日期時間包,以便新增支援更廣泛的日期-時間模型

JDBC

  • JDBC-ODBC橋接被移除

  • 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 新增加新的類以便支援通用執行緒池。(docs.oracle.com/javase/8/do…

  • 新增了java.util.concurrent.locks.StampedLock 類,使用三種模式來來控制讀寫訪問。

Java XML – JAXP

HotSpot

  • Intel 平臺支援硬體支援高階加密規範(AES)。必須是2010年以後的機器或者是Westmere架構。啟用使用:-XX:+UseAES -XX:+UseAESIntrinsics
  • 移除了永久帶

Default Methods in the Java Programming Language are supported by the byte code instructions for method invocation.
預設是呼叫位元組碼支援。

JAVA任務控制 Java Mission Control 5.3

   JDK 8 包含了 Java Mission Control 5.3 版本。

原文:www.oracle.com/technetwork…

更多翻譯:

Hotspot 記憶體管理白皮書

相關文章