JDK 11新特性解读

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/lwl2014100338/article/details/82838667

官网地址:http://openjdk.java.net/projects/jdk/11/

JDK 11 已确定了 15 个 JEP,下面是完整的列表:

181: 基于嵌套的访问控制(Nest-Based Access Control)
309: 动态类文件常量(Dynamic Class-File Constants)
315: 改进 Aarch64 Intrinsics(Improve Aarch64 Intrinsics)
318: Epsilon — 一个无操作的垃圾收集器(Epsilon: A No-Op Garbage Collector)
320: 删除 Java EE 和 CORBA 模块(Remove the Java EE and CORBA Modules)
321: HTTP Client (Standard)
323: 用于 Lambda 参数的局部变量语法(Local-Variable Syntax for Lambda Parameters)
324: Curve25519 和 Curve448 算法的密钥协议(Key Agreement with Curve25519 and Curve448)
327: Unicode 10
328: Flight Recorder
329: ChaCha20 和 Poly1305 加密算法(ChaCha20 and Poly1305 Cryptographic Algorithms)
330: 启动单一文件的源代码程序(Launch Single-File Source-Code Programs)
331: Low-Overhead Heap Profiling
333: 处于试验阶段的可伸缩低延迟垃圾收集器 ZGC: A Scalable Low-Latency Garbage Collector (Experimental)
336: 弃用 Pack200 工具和 API(Deprecate the Pack200 Tools and API)


特性解读

JEP 318:Epsilon: A No-Op Garbage Collector

JDK上对这个特性的描述是:开发一个处理内存分配但不实现任何实际内存回收机制的GC,一旦可用堆内存用完,JVM就会退出。

如果有System.gc()的调用,实际上什么也不会发生(这种场景下和-XX:+DisableExplicitGC效果一样),因为没有内存回收,这个实现可能会警告用户尝试强制GC是徒劳。

用法非常简单:-XX:+UseEpsilonGC。


JEP 320: Remove the Java EE and CORBA Modules

Java EE和CORBA两个模块在JDK9中已经标记"deprecated",在JDK11中正式移除。JDK中deprecated的意思是在不建议使用,在未来的release版本会被删除。


JEP 321: HTTP Client (Standard)

将JDK9引进并孵化的HTTP客户端API作为标准,即HTTP/2 Client。它定义了一个全新的实现了HTTP/2和WebSocket的HTTP客户端API,并且可以取代HttpURLConnection。


JEP 333: ZGC: A Scalable Low-Latency Garbage Collector (Experimental)

ZGC:这应该是JDK11最为瞩目的特性,没有之一。但是后面带了Experimental,说明还不建议用到生产环境。看看官方对这个特性的目标描述:

  • GC暂停时间不会超过10ms;

  • 即能处理几百兆小堆,也能处理几个T的大堆(OMG);

  • 和G1相比,应用吞吐能力不会下降超过15%;

  • 为未来的GC功能和利用colord指针以及Load barriers优化奠定基础;

  • 初始只支持64位系统;

用法:-XX:+UnlockExperimentalVMOptions -XX:+UseZGC,因为ZGC还处于实验阶段,所以需要通过JVM参数UnlockExperimentalVMOptions 来解锁这个特性。


猜你喜欢

转载自blog.csdn.net/lwl2014100338/article/details/82838667