Java JDK 10:下一代 Java 有哪些新特性?

举报
黑人爱吃炸酱面 发表于 2017/12/22 17:04:57 2017/12/22
【摘要】 工欲善其事,必先利其器。作为老牌军 Java 在发行二十多年的今天,战胜了 C 和 C++,成为诸多开发者的宠儿,且如今从其更新速度来看,也是不甘落后。今年的 9 月 21 日,大家期待已久的 Java 9 正式发布,现在开发者即将在几个月后就可以使用下一代 Java —— Java 10。十二月中旬,计划中的 Java 10 开发工具包升级节奏已经逐渐放缓。所以在目前阶段,产品升级后只能修复 P

工欲善其事,必先利其器。作为老牌军 Java 在发行二十多年的今天,战胜了 C 和 C++,成为诸多开发者的宠儿,且如今从其更新速度来看,也是不甘落后。

今年的 9 月 21 日,大家期待已久的 Java 9 正式发布,现在开发者即将在几个月后就可以使用下一代 Java —— Java 10。十二月中旬,计划中的 Java 10 开发工具包升级节奏已经逐渐放缓。所以在目前阶段,产品升级后只能修复 P1 到 P3 的错误

JDK 10 何时发布?

JDK 10 是 Java 10 标准版的部分实现,将于 2018 年 3 月 20 日发布,改进的关键点包括一个本地类型推断、一个垃圾回收的“干净”接口。

Oracle 已经为 Java 设定了六个月的发行计划。之前本打算根据发行的年份和月份命名升级版和后续版,这样的话第一个版本就会被称为 Java 18.3, 但这个计划后来被中止了。

如何下载 JDK 10?

用户要先加入早期使用者计划,然后才可以下载 JDK 10 测试版:http://jdk.java.net/10。

JDK 10 的新改进有哪些?

JDK 10 的主要功能包括:

  • 一个局部变量类型推断,通过增强语言特性将类型推断扩展到局部变量,目的是减少与编码相关的“仪式”,同时保持对静态类型的安全承诺。

  • 一个干净的垃圾收集器接口,用来改善垃圾收集器源代码之间的隔离效果,这样可以为HotSpot 虚拟机中的内部垃圾收集代码提供更好的模块化功能,也可以更容易向 HotSpot 添加新的垃圾收集器。

  • 并行、完整的 G1 垃圾收集器,通过实现并行性来改善最坏情况下的延迟问题。

  • 启用 HotSpot 将对象堆分配给用户指定的备用内存设备(如 NVDIMM 内存模块),这个特性也侧面预示了未来的系统可能会采用异构的内存架构。

  • 在 Linux / x64 平台上以实验性方式启用基于 Java 的即时编译器(https://www.infoworld.com/article/3187868/application-development/oracles-java-on-java-experiment-picks-up-steam.html)。

  • 将 JDK 的多个存储库合并成一个,简化开发。目前的代码库被分解成了多个库,容易出现源代码的管理问题。

  • 应用程序数据共享,通过跨进程共享通用类的元数据,减少空间占用及启动时长。

  • 线程本地握手,不执行全局 VM 安全点也能对线程执行回调,同时实现单线程停止回调。

  • JDK 提供了一组默认证书,开源 Java SE 的 CA程序,对开发人员更具吸引力。

Java 的长期路线图

以下是 Oracle 公司正在考虑的下一代产品、以及更高版本的 Java SE:

  • Amber 项目(https://www.infoworld.com/article/3187868/application-development/oracles-java-on-java-experiment-picks-up-steam.html)是面向生产力的语言特征孵化器,包括局部变量类型推断在内的各种较小的语言,目标是减少编写 Java 代码的相关程序、通过增强枚举使类型变量的常量执行更为清晰、提高 Lambda 方法的可用性。

  • Panama 项目(https://www.infoworld.com/article/2607953/java/article.html),将 JVM 和本地代码互连,具有来自 JVM 的本地函数调用和来自 JVM 的本地数据访问等功能。

  • Valhalla 项目(https://www.infoworld.com/article/2608087/java/java-incubator-to-explore-technologies-for-java-10-and-beyond.html)是高级 Java 虚拟机和语言特性孵化器。

  • Loom 项目(http://cr.openjdk.java.net/~rpressler/loom/Loom-Proposal.html),以降低编写并发应用程序的复杂性为目标,项目要求添加可选的用户模式线程实现、定界延续以及涉及调用堆栈操作的其他构造。通过提供一个由 Java 编写的调度器,替代实现线程的管理,这样子普通 Java 线程的 Java 编程模型就可以被保留下来,提高了性能,减少了占用空间。


【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。