Java 8更新151或152?

Aar*_*lla 32 java java-8

Oracle页面上有两个Java 8下载.

152发行说明注意到151上的两件事:

  • BigInteger性能改进
  • 编译器接受修改初始化方法之外的最终字段

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

我不确定前者.为什么这不是151?我发现这非常令人沮丧.两个版本没有明确指示哪一个是"更好"或大多数开发人员的"首选"版本.

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

var*_*ren 53

一般的想法是

  • 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)包含对安全漏洞和关键错误修复的修复.Oracle强烈建议所有Java SE用户在可用时升级到最新的CPU版本.Java SE CPU版本是奇数版本(即7u71,7u65 - 请参阅此处有关Java SE版本编号方案的更多信息).

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

除了相应CPU中包含的关键修复之外,PSU版本还为组织和开发人员提供了对非关键修复的访问权限.

另请阅读 奇怪甚至Java更新之间的区别是什么?


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


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

  • 坦率地说,这种双重释放方案每次都让我感到非常困扰,而且我可能远非唯一一个困惑的人.此外,关于此的文档是非常零星的,目前它在下载页面中是不存在的.希望他们会考虑放弃这个计划,并采取更传统的方式. (10认同)

小智 6

每个Oracle下载页面

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

这对于实际目的来说意味着如果你依赖于为你的应用程序说jdk8u144,你可以升级到151并且不会有任何破坏.

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

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