如何确定JDK版本-Oracle的较短发布周期

Ale*_*rov 3 java java-8 java-10 java-11 java-12

我对新的Oracle短发布周期范式感到困惑。这是带有支持日期的表格: 在此处输入图片说明

Java 8具有比以下大多数Jdk大的支持窗口。Java 9应该已经终止支持,与Java 10相同。

它决定了jdk版本成为一项不平凡的任务。

Oracle引入了Long therm支持发行版的therm。对于非LTS版本意味着什么?它们与次要发行版相似吗?

May*_*ain 5

过去,Java主要发行版通常倾向于加载影响深远的功能,这些功能会对您可以并且应该编写的代码产生巨大影响,例如泛型(Java 5),功能结构(Java 8)和模块(Java)。 9)。这样的发布花费了很长时间,并且由于各种原因经常导致延迟。

大概从中吸取了教训,Oracle决定对Java的开发风格进行大修,使其更具增量性或“敏捷性”(如果您愿意)。他们希望发布具有较少新功能的主要版本,而不是每隔六个月以固定的发布时间表发布有时会花费很多年才能完成的主要版本。

Java 10是此新发行模式下的第一个版本,Java 9已随Java 10的发布而弃用。Java11是2018年9月发行的长期支持(LTS)版本,支持到2026年(来源) 。这非常类似于许多Ubuntu版本的使用习惯(顺便说一句,他们甚至计划用涉及发行年份和月份的内容替换版本号,类似于Canonical对Ubuntu所做的事情,但由于某种原因放弃了这个想法)。

现在,使用非LTS版本的Java意味着承诺每6个月更新一次使用JDK的软件。它不应该像过去将代码从一个主要Java版本迁移到另一个主要版本那样复杂,因为如前所述,语言更改应该以一种增量方式进行,但这绝对是要考虑的事情。如果您不想做出此承诺,则应该坚持使用LTS版本,这意味着坚持使用Java 8或Java 11。

对于新的“未开发项目”,到目前为止,Java 11可能是最佳选择。但是,如果要使用的工具链尚未完全支持Java 11,则可能必须坚持使用Java 8。

我希望这将有所帮助。

  • “顺便说一句,他们甚至计划用涉及发行年份和月份的方式替换版本号,类似于Canonical对Ubuntu所做的事情,但是由于某种原因放弃了这个想法。”坦率地说,社区对此并不高兴。 (2认同)