天天看點

Java 10更新彙總,新的編譯器通吃主流程式設計語言

早些時候Oracle釋出了Java 10,這是Oracle更改釋出政策之後的第一版Java,Oracle現已決定每六個月釋出一個新的Java版本,周期縮短了,但是并不是說我們要學的更多了,而是說縮短開發周期後,有助于更快修複bug,并提前放出新功能,因為時間短是以新功能并不是很多。本次更新主要有:局部變量類型推斷,G1并行完全垃圾回收,以及測試版的Java-Based JIT編譯器。更新詳情如下:

局部變量類型推斷:在Java 8 lambda表達式的類型推斷基礎上,Java 10現已可以對本地變量類型進行推斷。

G1并行完全垃圾回收:提升了對G1進行完全垃圾回收時的最壞情況的延遲水準。

應用類資料共享:通過擴充現有的類資料共享(Class-Data Sharing, CDS)功能,使其允許class存放在共享歸檔中,以此來優化啟動速度和減少開銷。

測試版的Java-Based JIT編譯器:在Linux 64位環境下啟用了Java-Based JIT編譯器Graal。Graal是一個通用虛拟機,可以運作用JavaScript,Python, Ruby, R以及JVM語言Java, Scala, Cloujure, Kotlin程式設計語言編寫的應用程式,還可運作基于LLVM的程式設計語言所寫的程式,例如C和C++,而且能提供更快的速度。

垃圾回收接口:為了使不同垃圾回收器的源代碼更好的分離,引入了新的簡潔的垃圾回收器接口。它可以使HotSpot内部垃圾回收代碼更加子產品化,新增垃圾回收器實作時不影響已有的垃圾回收器代碼,能夠排隊某個垃圾回收器的實作。

本地線程握手:執行線程回調函數時不再對全局VM還原點進行還原,讓關閉單個線程變得可能且減少開銷。

新增Unicode語言标簽擴充:增強了java.util.Locale和其相關的API來實作BCP 47 Unicode擴充。

允許在其他記憶體裝置上進行堆配置設定:例如可以使用NV-DIMM記憶體裝置。

根證書:提供了一組預設的根證書授權中心(CA)。

基于時間的釋出版本:修定了Java SE平台和JDK的版本字元串模式。

合并JDK森林到單一倉庫:把分散的JDK倉庫統一到了一個倉庫中,簡化了JDK的開發流程。

繼續閱讀