Java11,目前处于发布候选阶段的下一版 Java 编程语言,预计将于 2018 年 9 月 25 日全面上市。距离现在还有 2 周时间。由于Oracle 计划于 2019 年 1 月推出针对 JDK 8 的 “Commercial User End of Public Updates”,估计会有许多用户打算在此之前迁移到 JDK 11。
你准备好了吗?

Java Development Kit(JDK)11 不仅仅是一个升级版。 它是 Java 语言的一个大有改善的版本,其中有几个功能专注于性能。 以下是 JDK 11 中可用的新特性列表。
嵌套是一种访问控制上下文,与 Java 编程语言中现有的嵌套类型概念一致。 嵌套允许逻辑上属于同一代码实体,但被编译为不同类文件的类,无需编译器插入可访问性扩展桥接方法,即可访问彼此的私有成员。
扩展 Java 类文件格式以支持新的常量池形式,CONSTANT_Dynamic。 加载CONSTANT_Dynamic 会将创建委托给 bootstrap 方法,就像链接 invokedynamic 调用站点将链接委托给 bootstrap 方法一样。
改进现有的字符串和数组内联函数,并在 AArch64 处理器上为 java.lang.Math sin,cos 和 log 函数实现新的内联函数。
开发一个处理内存分配但不实现任何实际内存回收机制的 GC。 一旦可用的 Java 堆耗尽,JVM 将关闭。
从 Java SE Platform 和 JDK 中删除 Java EE 和 CORBA 模块。这些模块在 Java SE 9 中已弃用,声明的目的是为了在将来的版本中删除它们。
通过 JEP 110 标准化 JDK 9 中引入的孵化 HTTP 客户端 API,并在 JDK 10 中进行更新。
在声明隐式类型的 lambda 表达式的形式参数时允许使用 var。
使用 RFC 7748 中描述的 Curve25519 和 Curve448 实现密钥协议。
升级现有平台 API 以支持 Unicode 标准 v10.0。
提供低开销的数据收集框架,用于对 Java 应用程序和 HotSpot JVM 进行故障排除。
实现 RFC 7539 中指定的 ChaCha20 和 ChaCha20-Poly1305 密码。ChaCha20 是一种相对较新的流密码,可以替代旧的、不安全的 RC4 流密码。
增强 java 启动程序以运行作为 Java 源代码的单个文件提供的程序,包括通过“shebang”文件和相关技术从脚本中使用。
提供一种低开销的 Java 堆分配采样方法,可通过 JVMTI 访问。
实现传输层安全性(TLS)协议 RFC 8446 的 1.3 版。
Z 垃圾收集器,也称为 ZGC,是一个可扩展的低延迟垃圾收集器。
弃用 Nashorn JavaScript 脚本引擎和 API 以及 jjs 工具,意图在将来的版本中删除它们。
在 java.util.jar 中弃用 pack200 和 unpack200 工具以及 Pack200 API。
OneAPM 为您提供端到端的 Java 应用性能 解决方案,我们支持所有常见的 Java 框架及应用服务器,助您快速发现系统瓶颈,定位异常根本原因。分钟级部署,即刻体验,Java 监控从来没有如此简单。想阅读更多技术文章,请访问 OneAPM 官方技术博客 。