Java 10 如约而至,12项关键特性

Java 10 如约而至!!!

为了更快地迭代,以及跟进社区反馈,甲骨文曾在2017年就宣布Java 的版本发布周期变更每六个月一次,并且承诺不会跳票。新的发布周期也会严格遵循时间点,将在每年的 3 月份和 9 月份发布。此次 Java 10 的版本号是 18.3。

Java 10 是采用新发布周期的第一个版本,提供了 109 项新特性,其中最受关注的莫过于包括局部变量的类型推断所在内的 12 项关键新特性。

Java 10 的 12 项关键新特性

JEP 286:局部变量类型推断对于开发者来说,这是 JDK 10 唯一的真正特性。 它向 Java 中引入在其他语言中很常见的 var,比如 JavaScript 。只要编译器可以推断此种类型,你就不再需要专门声明一个局部变量的类型。 一个简单的例子是:var x = new ArrayList();

这就消除了我们之前必须执行的 ArrayList类型定义的重复。我鼓励你们去读 JEP ,因为上面有一些关于这个句法是否能用的规则。

有趣的是,需要注意 var 不能成为一个关键字,而是一个保留字。这意味着你仍然可以使用 var 作为一个变量、方法或包名,但是现在不能再调用类。

JEP 310:应用类数据共享(CDS)CDS 在 JDK 5 时被引进以改善 JVM 启动的表现,同时减少当多个虚拟机在同一个物理或虚拟的机器上运行时的资源占用。JDK 10 将扩展 CDS 到允许内部系统的类加载器、内部平台的类加载器和自定义类加载器来加载获得的类。之前,CDS 的使用仅仅限制在了 bootstrap 的类加载器。

JEP 314:额外的 Unicode 语言标签扩展这将改善 java.util.Locale 类和相关的 API 以实现额外 BCP 47 语言标签的 Unicode 扩展。尤其是货币类型,区域覆盖和时区等标签现在将被支持。

JEP 322:基于时间的版本控制JDK 版本字符串格式几乎与 JDK 版本一样多。有幸的是,这是最后需要使用到的,我们可以坚持用它。这种格式使用起来很像 JDK 9 中介绍的提供一个更加语义的形式。但其中包含了一个 INTERIM 元素,正如 JEP 提议中所说的“永远是 0”。好吧,如果永远是 0,那它有什么意义呢?他们说这是为未来使用做保留,但我仍不是很赞同。我认为,这有些冗余繁杂。

这也消除了在 JDK 9 中有过的相当奇怪的情形。第一次更新是 JDK 9.0.1 , 非常符合逻辑。第二次更新是 JDK 9.0.4 ,不合逻辑。原因是,在 JDK 9 的版本计数模式下,需要留下空白以便应急或不在预期安排的更新使用。但既然没有更新是必须的,为什么不简单称之为 JDK 9.0.2 呢?

JEP 319:根证书在 JDK 中将提供一套默认的 CA 根证书。关键的安全部件,如 TLS ,在 OpenJDK 构建中将默认有效。Oracle 正在努力确保 OpenJDK 二进制和 Oracle JDK 二进制功能一致,这是一项有用的补充内容。

JEP 307:并行全垃圾回收器 G1G1 是设计来作为一种低延时的垃圾回收器(但是如果它跟不上旧的堆碎片产生的提升速率的话,将仍然采用完整压缩集合)。在 JDK 9 之前,默认的收集器是并行、吞吐、收集器。为了减少在使用默认的收集器的应用性能配置文件的差异,G1 现在有一个并行完整收集机制。

JEP 313:移除 Native-Header 自动生成工具Java 9 开始了一些对 JDK 的家务管理,这项特性是对它的延续。当编译 JNI 代码时,已不再需要单独的工具来生成头文件,可以通过 javac 完成。在未来的某一时刻,JNI 将被 Panama 项目的结果取代。

JEP 304:垃圾回收器接口这不是让开发者用来控制垃圾回收的接口,而是一个在 JVM 源代码中的允许另外的垃圾回收器快速方便的集成的接口。

JEP 312:线程—局部变量管控这是在 JVM 内部相当低级别的更改,现在将允许在不运行全局虚拟机安全点的情况下实现线程回调。

这将使得停止单个线程变得可能和便宜,而不是只能启用或停止所有线程。

JEP 316:在备用存储装置上的堆分配硬件技术在持续进化,现在可以使用与传统 DRAM 具有相同接口和类似性能特点的非易失性 RAM 。

这项 JEP 将使得 JVM 能够使用适用于不同类型的存储机制的堆。

JEP 317:试验性的基于 Java 的 JIT 编译器最近宣布的 Metropolis 项目提议用 Java 重写大部分 JVM,乍一看觉得很奇怪。如果 JVM 是用 Java 编写的,那么是否需要一个 JVM 来运行 JVM ? 相应的,这导致了一个很好的镜像类比。现实情况是,使用 Java 编写 JVM 并不意味着必须将其编译为字节码,你可以使用 AOT 编译,然后在运行时编译代码以提高性能。这项 JEP 将 Graal 编译器研究项目引入到 JDK 中,并让 Metropolis 项目成为现实,使 JVM 性能与当前 C++ 所写版本的匹敌提供了基础。

JEP 296:合并 JDK 多个代码仓库到一个单独的储存库中在 JDK 9 中,有 8 个仓库: root、corba、hotspot、jaxp、jaxws、jdk、langtools 和 nashorn 。在 JDK 10 中这些将被合并为一个,使得跨相互依赖的变更集的存储库运行 atomic commit (原子提交)成为可能。

Java 10 提供多达 109 项新特性支持,其中在开发者社区曾被大量讨论过的「局部变量的类型推断」终于在本次更新中到来。

这意味着未来开发者可以在 Java 10 中引入其他编程语言中常见的「var」,但需要注意,「var」不能成为一个关键字,而是一个保留字。

Java 10- 与 Java 9 公布仅仅时隔半年,但 Java 10 的内容依然非常丰富,可以预见未来 Java 平台的快速更迭或成趋势,各位工程师们恐怕要花更多的时间去适应越来越多的新特性了。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,242评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,769评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,484评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,133评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,007评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,080评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,496评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,190评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,464评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,549评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,330评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,205评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,567评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,889评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,160评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,475评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,650评论 2 335

推荐阅读更多精彩内容