Java 8 更新 151 还是 152?

2022-09-01 09:29:32

Oracle 页面上有两个 Java 8 下载

152的发行说明指出了151中的两件事:

  • BigInteger 性能改进
  • 编译器接受初始值设定项方法外部的最终字段的修改

后者似乎更像是一个评论,“这是一个错误,但没有在8中修复;它将在Java 9中修复。因此,这也适用于版本151,即使它没有被提及。

我不确定前者。为什么在151年没有呢?我发现这非常令人沮丧。对于大多数开发人员来说,两个版本没有明确指示哪一个是“更好”的或“首选”的版本。

因此,我的问题是:在生产中使用152还是使用151更好?是否有任何指标可以或应该用于决定?


答案 1

一般的想法是

  • 8u151(标签 jdk8u151-b12)是一个关键补丁更新 (CPU) 版本
  • 8u152(标记 jdk8u152-b16)是补丁集更新 (PSU) 版本

来自官方 Oracle CPU 和 PSU 版本的说明

从 2014 年 10 月发布的 Java SE 7 Update 71 (Java SE 7u71) 开始,Oracle 将在发布适用于 Java SE 7 的相应补丁集更新 (PSU) 的同时发布关键补丁更新 (CPU)。

我应该选择哪个 Java 版本:CPU 还是 PSU?Oracle 强烈建议所有 Java SE 用户升级到可用于某个发行版系列的最新 CPU 发行版。大多数用户应该选择 CPU 版本。

仅当用户受到发行说明中所述的在该版本中修复的其他错误之一的影响时,才应使用相应的 PSU 版本。

后续 CPU 版本将包含当前 PSU 中的所有修补程序。因此,组织应在其环境中测试当前 PSU,以便预期这些修补程序将包含在下一个 CPU 中。

Java CPU 和 PSU 发行版之间有什么区别?Java SE 关键补丁更新 (CPU) 包含对安全漏洞的修复和关键 bug 修复。Oracle 强烈建议所有 Java SE 用户在最新的 CPU 版本可用时升级到这些版本。Java SE CPU 发行版是奇数编号版本(即 7u71、7u65 – 在此处查看有关 Java SE 版本编号方案的更多信息)。

Java SE 修补程序集更新 (PSU) 包含相应 CPU 中的所有修补程序以及其他非关键修补程序。仅当受到该版本中修复的其他错误之一的影响时,才应使用 Java PSU 版本。发行说明列出了 Java SE PSU 发行版中可用的其他修复程序。

PSU 版本为组织和开发人员提供了对非关键修补程序以及相应 CPU 中包含的关键修补程序的访问权限。

另请阅读奇数和偶数 Java 更新之间的区别是什么?


要查找公共错误修复的完整列表,您需要打开发行说明底部的“错误修复”页面。


因此,PSU (8u152) 中有 238 个错误修复(不仅是 BigInteger 性能改进)。而且,在下一个CPU版本中,您很有可能会获得其中的大多数。因此,建议尽可能快地更新到8u151,并测试/调整代码,以便与8u152进行比较。你可以更新到8u152,如果你真的需要一些错误修复。


答案 2

每个 Oracle 下载页面

Java SE 8u151 包括重要的错误修复。Oracle 强烈建议所有 Java SE 8 用户升级到此版本。Java SE 8u152 是一个补丁集更新,包括所有 8u151 以及附加功能(在发行说明中描述)。

对于实际目的来说,这意味着如果您依赖说jdk8u144来执行您的应用程序,则可以升级到151并且期望不会中断任何内容。

但是,如果您要升级并且不特别关心152中包含的增强功能,则可以继续。

如果您的应用程序依赖于 BigInteger,例如在某些金融应用程序中,这可能是一个大问题,并且可能需要进行一定程度的集成测试。


推荐