摘要:從版本開始,不再多帶帶發布或者版本了,有需要的可以自己通過去定制官方解讀官方細項解讀穩步推進系列六的小試牛刀一文讀懂的為何如此高效棄用引擎
Java語言特性系列
Java5的新特性
Java6的新特性
Java7的新特性
Java8的新特性
Java9的新特性
Java10的新特性
Java11的新特性
Java12的新特性
Java13的新特性
序本文主要講述一下Java11的新特性
版本號java -version openjdk version "11" 2018-09-25 OpenJDK Runtime Environment 18.9 (build 11+28) OpenJDK 64-Bit Server VM 18.9 (build 11+28, mixed mode)
General-Availability Release版本是基于tag為jdk-11+28的版本編譯
從version信息可以看出是build 11+28
特性列表181: Nest-Based Access Control
相關解讀Java Nestmate穩步推進,Specification for JEP 181: Nest-based Access Control
簡單的理解就是Class類新增了getNestHost,getNestMembers方法
309: Dynamic Class-File Constants
相關解讀Specification for JEP 309: Dynamic Class-File Constants (JROSE EDITS)
jvm規范里頭對Constant pool新增一類CONSTANT_Dynamic
315: Improve Aarch64 Intrinsics
對于AArch64處理器改進現有的string、array相關函數,并新實現java.lang.Math的sin、cos、log方法
318: Epsilon: A No-Op Garbage Collector
引入名為Epsilon的垃圾收集器,該收集器不做任何垃圾回收,可用于性能測試、短生命周期的任務等,使用-XX:+UseEpsilonGC開啟
320: Remove the Java EE and CORBA Modules(重磅)
將java9標記廢棄的Java EE及CORBA模塊移除掉,具體如下:(1)xml相關的,java.xml.ws, java.xml.bind,java.xml.ws,java.xml.ws.annotation,jdk.xml.bind,jdk.xml.ws被移除,只剩下java.xml,java.xml.crypto,jdk.xml.dom這幾個模塊;(2)java.corba,java.se.ee,java.activation,java.transaction被移除,但是java11新增一個java.transaction.xa模塊
321: HTTP Client (Standard)(重磅)
相關解讀java9系列(六)HTTP/2 Client (Incubator),HTTP Client Examples and Recipes,在java9及10被標記incubator的模塊jdk.incubator.httpclient,在java11被標記為正式,改為java.net.http模塊。
323: Local-Variable Syntax for Lambda Parameters
相關解讀New Java 11 Language Feature: Local-Variable Type Inference (var) extended to Lambda Expression Parameters
允許lambda表達式使用var變量,比如(var x, var y) -> x.process(y),如果僅僅是這樣寫,倒是無法看出寫var有什么優勢而且反而覺得有點多此一舉,但是如果要給lambda表達式變量標注注解的話,那么這個時候var的作用就突顯出來了(@Nonnull var x, @Nullable var y) -> x.process(y)
324: Key Agreement with Curve25519 and Curve448
使用RFC 7748中描述的Curve25519和Curve448實現key agreement
327: Unicode 10
升級現有的API,支持Unicode10.0.0
328: Flight Recorder
相關解讀Java 11 Features: Java Flight Recorder
Flight Recorder以前是商業版的特性,在java11當中開源出來,它可以導出事件到文件中,之后可以用Java Mission Control來分析。可以在應用啟動時配置java -XX:StartFlightRecording,或者在應用啟動之后,使用jcmd來錄制,比如
$ jcmdJFR.start $ jcmd JFR.dump filename=recording.jfr $ jcmd JFR.stop
329: ChaCha20 and Poly1305 Cryptographic Algorithms
實現 RFC 7539的ChaCha20 and ChaCha20-Poly1305加密算法
330: Launch Single-File Source-Code Programs(重磅)
相關解讀Launch Single-File Source-Code Programs in JDK 11
有了這個特性,可以直接java HelloWorld.java來執行java文件了,無需先javac編譯為class文件然后再java執行class文件,兩步合成一步
331: Low-Overhead Heap Profiling
通過JVMTI的SampledObjectAlloc回調提供了一個開銷低的heap分析方式
332: Transport Layer Security (TLS) 1.3(重磅)
支持RFC 8446中的TLS 1.3版本
333: ZGC: A Scalable Low-Latency Garbage Collector(Experimental)(重磅)
相關解讀JDK11的ZGC小試牛刀,一文讀懂Java 11的ZGC為何如此高效
335: Deprecate the Nashorn JavaScript Engine
相關解讀Oracle棄用Nashorn JavaScript引擎,Oracle GraalVM announces support for Nashorn migration
廢除Nashorn javascript引擎,在后續版本準備移除掉,有需要的可以考慮使用GraalVM
336: Deprecate the Pack200 Tools and API
廢除了pack200以及unpack200工具以及java.util.jar中的Pack200 API。Pack200主要是用來壓縮jar包的工具,不過由于網絡下載速度的提升以及java9引入模塊化系統之后不再依賴Pack200,因此這個版本將其移除掉。細項解讀
上面列出的是大方面的特性,除此之外還有一些api的更新及廢棄,主要見What"s New in JDK 11 - New Features and Enhancements以及90 New Features (and APIs) in JDK 11,這里舉幾個例子。
添加項Collection.toArray(IntFunction)
@Test public void testCollectionToArray(){ Setnames = Set.of("Fred", "Wilma", "Barney", "Betty"); String[] copy = new String[names.size()]; names.toArray(copy); System.out.println(Arrays.toString(copy)); System.out.println(Arrays.toString(names.toArray(String[]::new))); }
Collection類新增toArray(IntFunction)的default方法,可以直接通過傳入IntFunction告知要轉換的目標類型
String.strip
@Test public void testStrip(){ String text = " u2000a b "; Assert.assertEquals("a b",text.strip()); Assert.assertEquals("u2000a b",text.trim()); Assert.assertEquals("a b ",text.stripLeading()); Assert.assertEquals(" u2000a b",text.stripTrailing()); }
java11對String類新增了strip,stripLeading以及stripTrailing方法,除了strip相關的方法還新增了isBlank、lines、repeat(int)等方法
添加了Google Trust Services GlobalSign Root Certificates
添加了GoDaddy Root Certificates
添加了T-Systems, GlobalSign and Starfield Services Root Certificates
添加了Entrust Root Certificates
移除項移除了com.sun.awt.AWTUtilities
移除了sun.misc.Unsafe.defineClass,使用java.lang.invoke.MethodHandles.Lookup.defineClass來替代
移除了Thread.destroy()以及 Thread.stop(Throwable)方法
移除了sun.nio.ch.disableSystemWideOverlappingFileLockCheck、sun.locale.formatasdefault屬性
移除了jdk.snmp模塊
移除了javafx,openjdk估計是從java10版本就移除了,oracle jdk10還尚未移除javafx,而java11版本則oracle的jdk版本也移除了javafx
移除了Java Mission Control,從JDK中移除之后,需要自己多帶帶下載
移除了這些Root Certificates :Baltimore Cybertrust Code Signing CA,SECOM ,AOL and Swisscom
廢棄項廢棄了Nashorn JavaScript Engine
廢棄了-XX+AggressiveOpts選項
-XX:+UnlockCommercialFeatures以及-XX:+LogCommercialFeatures選項也不再需要
廢棄了Pack200工具及其API
小結java11是java改為6個月發布一版的策略之后的第一個LTS(Long-Term Support)版本(oracle版本才有LTS),這個版本最主要的特性是:在模塊方面移除Java EE以及CORBA模塊,在JVM方面引入了實驗性的ZGC,在API方面正式提供了HttpClient類。
從java11版本開始,不再多帶帶發布JRE或者Server JRE版本了,有需要的可以自己通過jlink去定制runtime image
docJDK11
JDK11 Features
Introducing Java SE 11(官方解讀)
JDK 11 Release Notes(官方細項解讀)
What is new in Java 11 ?
Java Nestmate穩步推進
Specification for JEP 181: Nest-based Access Control
Specification for JEP 309: Dynamic Class-File Constants (JROSE EDITS)
Java 11 Features: Java Flight Recorder
java9系列(六)HTTP/2 Client (Incubator)
Java 11: Standardized HTTP Client API
java.net.http javadoc
HTTP Client Examples and Recipes
New Java 11 Language Feature: Local-Variable Type Inference (var) extended to Lambda Expression Parameters
JDK11的ZGC小試牛刀
一文讀懂Java 11的ZGC為何如此高效
Oracle棄用Nashorn JavaScript引擎
Oracle GraalVM announces support for Nashorn migration
JDK 11: New Default Collection Method toArray(IntFunction)
90 New Features (and APIs) in JDK 11
APIs To Be Removed from Java 11
Java 11 String API Updates
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/77285.html
摘要:的這個特性新增了兩個參數分別是及,設置為的話,表示禁用。語法層面引入了版本的層面引入了,引入,讓支持,對等新增方法方面引入了版本的,不過的沒有另外主要對及進行了改進其中對支持了,默認是開啟,使用可以禁用對于則新增支持以及特性 Java語言特性系列 Java5的新特性 Java6的新特性 Java7的新特性 Java8的新特性 Java9的新特性 Java10的新特性 Java11的新...
摘要:將摒棄的部分將移除和最近更名為模塊同時也會移除新增功能垃圾收集器被稱為收集器,將處理內存分配而不實施任何實際的內存回收機制。統計下目前的垃圾收集器,允許在聲明隱式類型的表達式的形式參數時使用類文件格式將被擴展為支持一個新的常量池形式。 java11將摒棄的部分 Java 11 將移除 CORBA 和 Java EE(最近更名為 Jakarta EE)模塊同時也會移除 JavaFX ja...
摘要:新特性概述系列一安裝及使用系列二運行系列三模塊系統精要系列四更新系列五系列六系列七系列八系列九與的區別遷移注意事項參數遷移相關選項解析使用構建實例使用示例帶你提前了解中的新特性 Java語言特性系列 Java5的新特性 Java6的新特性 Java7的新特性 Java8的新特性 Java9的新特性 Java10的新特性 Java11的新特性 Java12的新特性 Java13的新特性...
摘要:于是抽時間看了看以后各個版本的特性,做了一個總結。年和公開版本發布,取名為。此后對應版本就是,。發布,是一個重大版本更新。在此之后,就是每六個月發布一次新版本。以上和參考資料聊了一些關于的歷史,下面我們看看各個版本有那些新特性。 【這是 ZY 第 11 篇原創技術文章】 某天在網上閑逛,突然看到有篇介紹 Java 11 新特性的文章,頓時心里一驚,畢竟我對于 Java 的版本認識...
閱讀 2508·2023-04-25 17:37
閱讀 1189·2021-11-24 10:29
閱讀 3696·2021-09-09 11:57
閱讀 692·2021-08-10 09:41
閱讀 2243·2019-08-30 15:55
閱讀 2811·2019-08-30 15:54
閱讀 1942·2019-08-30 15:53
閱讀 895·2019-08-30 15:43