您的位置:首页 > 编程语言 > Java开发

Java 重大升级马上来了:JDK 11 新特性了解一下

2018-09-13 15:15 603 查看
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 官方技术博客
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息