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 内联函数
改进现有的字符串和数组内联函数,并在 AArch64 处理器上为 java.lang.Math sin,cos 和 log 函数实现新的内联函数。
Epsilon:No-Op 垃圾收集器
开发一个处理内存分配但不实现任何实际内存回收机制的 GC。 一旦可用的 Java 堆耗尽,JVM 将关闭。
删除 Java EE 和 CORBA 模块
从 Java SE Platform 和 JDK 中删除 Java EE 和 CORBA 模块。这些模块在 Java SE 9 中已弃用,声明的目的是为了在将来的版本中删除它们。
HTTP 客户端(标准)
通过 JEP 110 标准化 JDK 9 中引入的孵化 HTTP 客户端 API,并在 JDK 10 中进行更新。
Lambda 参数的本地变量语法
在声明隐式类型的 lambda 表达式的形式参数时允许使用 var。
Curve25519 和 Curve448 密钥协议
使用 RFC 7748 中描述的 Curve25519 和 Curve448 实现密钥协议。
Unicode 10
升级现有平台 API 以支持 Unicode 标准 v10.0。
运行记录仪
提供低开销的数据收集框架,用于对 Java 应用程序和 HotSpot JVM 进行故障排除。
ChaCha20 和 Poly1305 密码算法
实现 RFC 7539 中指定的 ChaCha20 和 ChaCha20-Poly1305 密码。ChaCha20 是一种相对较新的流密码,可以替代旧的、不安全的 RC4 流密码。
启动单文件源代码程序
增强 java 启动程序以运行作为 Java 源代码的单个文件提供的程序,包括通过“shebang”文件和相关技术从脚本中使用。
低开销堆分析
提供一种低开销的 Java 堆分配采样方法,可通过 JVMTI 访问。
传输层安全性(TLS)1.3
实现传输层安全性(TLS)协议 RFC 8446 的 1.3 版。
ZGC:可扩展的低延迟垃圾收集器
Z 垃圾收集器,也称为 ZGC,是一个可扩展的低延迟垃圾收集器。
弃用 Nashorn JavaScript 引擎
弃用 Nashorn JavaScript 脚本引擎和 API 以及 jjs 工具,意图在将来的版本中删除它们。
弃用 Pack200 工具和 API
在 java.util.jar 中弃用 pack200 和 unpack200 工具以及 Pack200 API。
OneAPM 为您提供端到端的 Java 应用性能 解决方案,我们支持所有常见的 Java 框架及应用服务器,助您快速发现系统瓶颈,定位异常根本原因。分钟级部署,即刻体验,Java 监控从来没有如此简单。想阅读更多技术文章,请访问 OneAPM 官方技术博客 。
网友评论