您好,欢迎来到12图资源库!分享精神,快乐你我!我们只是素材的搬运工!!
  • 首 页
  • 当前位置:首页 > 开发 > WEB开发 >
    我们应该采用 Java 12 还是坚持运用 Java 11?
    时间:2018-11-05 08:55 来源:网络整理 作者:网络 浏览:收藏 挑错 推荐 打印

    我们应该采用 Java 12 还是坚持运用 Java 11?

    距离 Java 11 的正式发布已过去一个多月,而 Java 12 也正在赶来的路上。依据此前开源中国发起的一项关于开发者运用的 Java 版本的调查,Java 8 依然是开发者的主流选择,而 Java 11 是 Java 8 之后的首个 LTS 版本,所以有不少开发者表示会选择晋级至 Java 11。按照 Java 的发布方案,Java 12 将于明年 3 月推出。那么成绩来了,我们是应该采用 Java 12,还是坚持运用 Java 11 呢?

    能够你会觉得这是一个有关紧要的成绩,但关于那些需求在 JVM 中运用 Java 的开发者,或是比较看重 Java 新特性的开发者,这是一项十分重要的决策。这篇文章将和大家就这个成绩停止相关的剖析。

    Java 发布方案

    如今每六个月就会发布一个新的 Java 版本,所以虽然 Java 11 才发布不久,但距离 Java 12 的发布也就剩下不到五个月的时间。作为发布方案的一部分,某些版本会被指定为长期支持版本(LTS),它们会取得四年或更长时间的技术支持和安全补丁更新。所以这些版本通常会被称为“主要版本” —— 不是由于它们拥有更多的功用特性,而是由于它们具有长期的技术支持。

    估量 Java 11 的更新补丁(11.0.1, 11.0.2, 11.0.3 等)将比 Java 8 的补丁(8u20, 8u40, 8u60)更小更复杂。由于 Java 11 的更新将愈加集中在安全补丁上,不会像 Java 8 的更新那样带来外部的功用增强。Oracle 希望将 Java 12, 13, 14 等这些版本当做是小更新版本,类比成 Java 8 的话,即是 Java 11u20, 11u40。

    Oracle 初级员工一再以为像 8u20 和 8u40 这样的更新常常会带来破坏性的变更,但本文作者表示这不是本人的阅历,他记得的独一有破坏性的变化是为 Javadoc 添加了 --allow-script-in-comments,但它也不是 Java 的中心部分。因此,他从不担忧晋级到最新版本带来的影响 —— 由于这是 Java 平台的中心优势。

    下面深化了解一下为什么在旧的发布形式下,晋级版本不会招致任何成绩。先看一下新旧发布形式之间的差异:

    形式 旧的发布形式   新的发布形式  
    晋级系列 Java 主要版本   Java 更新版本   Java 版本系列   Java 补丁版本  
    频率 每隔3年左右   每6个月一次   每6个月一次   每3个月一次  
    版本 6 -> 7 -> 8   8 -> 8u20 -> 8u40   11 -> 12 -> 13   11 -> 11.0.1 -> 11.0.2  
    言语变化        
    JVM 变化        
    主要的功用增强        
    添加的 classes/methods        
    移除的 classes/methods        
    新的弃用        
    外部功用增强        
    JDK 工具变更        
    Bug 修复        
    Security 补丁        

    Oracle 的官方观念以为:与 Java 7->8->9 相比,Java 9->10->11 的晋级和 8->8u20->8u40 更相似。

    表格清楚地显示新形式下的 Java 版本发布都会包含许多变更,包括言语变更和 JVM 变更,这两者都会对 IDE、字节码库和框架产生严重影响。此外,不只会新增其他 API,还会有 API 被删除(这在 Java 8 之前没有发作过)。

    Oracle 的观念是,由于每个版本仅在前一个版本发布后的6个月推出,所以不会有太多新的“东西”,因此晋级并不困难。虽然如此,但这不是重点。重要的是晋级能否有能够会破坏代码。很清楚,从 11 -> 12 -> 13 末尾,代码遭受破坏的能够性要大于 8 -> 8u20 -> 8u40。

    11 -> 12 -> 13 与 8u20 -> 8u40 等这样的更新主要区别在于对字节码版本的更改以及对标准的更改,对字节码版本的更改往往特别具有破坏性,大少数框架都少量运用与每个字节码版本亲密相关的 ASM 或 ByteBuddy 等库。而 8u20 -> 8u40 依然运用相反的 Java SE 标准,具有一切相反的类和办法,不同于从 Java 12 移动到 13。

    除此之外,Oracle 的另一个声明也十分值得我们关注。声明透显露的音讯是,假设坚持运用 Java 11 并方案在下一个 LTS 版本(即 Java 17)发布时再停止晋级,开发者能够会发现本人的项目代码无法经过编译。所以请记住,Java 新的开发规则如今声明可以在一个版本中弃用某个 API 办法,并在下一个版本中删除它。

    采用新版本 Java 的留意事项

    在本节中,将概述在采用新版本 Java 之前必须思索的一些留意事项/风险。

    被新版本系列“绑定”

    (责任编辑:admin)