为什么Oracle每次都会发布两个版本的JDK?

33
在本问题提出时,如果您想要下载Oracle JDK,您可以下载v8u91和v8u92两个版本。
为什么会有两个版本?

1
在企业软件中,支持当前版本和上一个版本(即2个版本)是常见的做法。这种做法不仅限于Oracle的Java,他们的许多其他产品也遵循这个做法。 - Tim Biegeleisen
阅读https://en.wikipedia.org/wiki/Software_versioning。 - Radhakrishna Sharma Gorenta
3
Oracle将关键补丁更新(CPU)编号为奇数,而补丁集更新(PSU)编号为偶数,并有时同时发布两者。他们在http://www.oracle.com/technetwork/java/javase/cpu-psu-explained-2331472.html下描述了这些发布类型及其差异。 - martin
2
超级用户认为这个问题并不是“基于观点”的 - https://superuser.com/questions/1110066/what-is-the-difference-between-java-cpu-and-psu-releases-eg-jdk-se-8u101-and-jd - muttonUp
为什么这是一个封闭的问题?这是一个很棒的问题。正好属于“为什么苹果要给它的操作系统命名?”这个类别。 - Sander W. van der Laan
所有用户都应使用奇数版号(CPU、紧急补丁更新),例如8u201,除了那些受到特定破损补丁影响的用户 - 偶数版号的 PSU(补丁集更新),例如8u202,包含“等待/热点”补丁。请参见马丁评论中的链接。 - Milan Kerslager
1个回答

29
较低版本是更保守的构建,更加适合生产使用。较高版本具有更多的优化,适用于开发和可能的生产环境,并允许他们发布一些他们想要发布但尚未经过充分测试的优化和特性。

http://www.oracle.com/technetwork/java/javase/downloads/index.html

Java SE 8u92是一个补丁集更新,包含了所有8u91的功能以及额外的特性(在发布说明中有描述)。
特别是记录的差异是:
如果启用了SunMSCAPI,则从默认支持列表中删除SHA224。SunJSSE允许SHA224作为TLS 1.2连接的可用签名和哈希算法。然而,当前的SunMSCAPI实现尚不支持SHA224。如果同时使用SHA224和SunMSCAPI私钥可能会导致问题。为了缓解这个问题,如果启用了SunMSCAPI,则从默认支持列表中删除SHA224。新增了两个JVM标志:ExitOnOutOfMemoryError和CrashOnOutOfMemoryError。启用ExitOnOutOfMemoryError选项后,JVM在第一次出现内存不足错误时退出。如果您喜欢重新启动JVM实例而不是处理内存不足错误,则可以使用此选项。如果启用CrashOnOutOfMemoryError选项,则当发生内存不足错误时,JVM将崩溃并生成文本和二进制崩溃文件(如果启用了核心文件)。简而言之,如果您正在赶工版本,请使用较低版本,或者永远不要急于将新版本投入生产中,请使用更高版本并对应用程序进行测试。

感谢您提供这个全面的答案! - Sander W. van der Laan
2
这个问题被关闭为“基于观点”太荒唐了。你只需要从答案开头删除“AFAIK”,它就不再是“基于观点”的问题,而是一个明确的问题和答案。 - isapir

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接