NVIDIA 初创加速计划,免费加速您的创业启动 了解详情
写点什么

Oracle 调整 Java SE 版本编号方案

  • 2013-05-27
  • 本文字数:1189 字

    阅读完需:约 4 分钟

“为避免版本重新编号而引起的混乱”,Oracle 已经宣布 JDK 5.0、JDK 6 和 JDK 7 将采用新的编号方案。Java 子版本分为计划内 Limited Update 版本和 Critical Patch Updates(CPUs),Limited Update 版本包含非安全相关的缺陷修复和不定期的新功能增加,CPU 版本则包含安全漏洞的修复。安全版本的发布频率增加意味着计划内版本会不定期的调整编号。这给 Oracle 带来了问题——这意味着在缺陷跟踪系统中,缺陷修复和功能增强无法分派到特定的版本上。

为解决此问题,Oracle 已经决定:

  • 使用 20 的倍数作为 Limited Update 版本编号。
  • 我们想继续使用奇数来为 Critical Patch Updates 编号。编号的计算方式为:前一版本的 Limited Update 编号加 5 的倍数,如果结果为偶数,则再加 1。

下面举例说明:

JDK 7 的下一个 Limited Update 将会编号为 7u40,之后的 3 个 CPU 编号分别为 7u45、7u51 和 7u55。之后的 Limited Update 版本编号则为 7u60,CPU 编号分别为 7u65、7u71 和 7u75。

编号方案将在不同版本保留一些空间,这样我们可以加入一些版本,比如说一些必要的安全警告或支持性的版本,而无需将后续的版本重新编号。

Oracle 的 Phil Race,一位 Java 客户端团队的工程师,已经在 Sun/Oracle 工作 12 年以上,表示自己没有参与相关的讨论,但他在 OpenJDK 的邮件列表中提供了一些更详细的信息

我们习惯使用奇数作为安全更新的版本编号,其他版本使用偶数。我不确定这对外界有多重要,但是如果你要打破常规,将有可能出现两个安全更新版本连号的问题。

一些计划外版本的需求也给我们带来一些困惑。版本 7u14 已经存在,版本中缺陷已经标记为修复,reports、stats、etc 等都引用了这个版本,但因版本号的调整,现在这些引用数据都是错误的,(希望)这些工作将在 7u40 中重见天日。在此期间,不论内部还是外部人员都无法理解,为什么一个据称在 7u14 中修复的缺陷,又在 7u17 中重现了。所以,在非安全版本号之间留下充足的空间,就不用我们在工作中重新调整版本号了。

计划内安全版本号之间的空间是为计划外的版本预留的,为了以防万一。而为安全版本所保留奇数编号的习惯,将会用掉更多的编号。所以,令人高深莫测的编号跳跃问题今后将彻底终结。

比如:

7u15 是计划内的安全发布
7u17 是计划外的保留编号(个人看法)
7u19 是为突发情况而保留的,不是必要的
7u21 是计划内的安全发布

等等……

Oracle 表示,在版本编号方案的调整上需要一种更加文艺的解决方案,以适应各类变化(比如说使用 7u44-2 这种方案)。然而,这种方案无法在主版本之外使用,因为这么做有可能使现有用于解析版本字符串的代码失效(可能还包括 Java 自动更新系统),某种程度上这还会让人回想起当公司名称由 Sun Microsystems 改名为 Oracle 时发生的事情。此外,因为 Java 8 的延迟发布,Oracle 不太可能及时作出这种改变。

查看英文原文: Oracle to Change the Release Numbering for Java SE

2013-05-27 09:311852
用户头像

发布了 36 篇内容, 共 13.4 次阅读, 收获喜欢 2 次。

关注

评论

发布
暂无评论
发现更多内容

一线架构师开发总结:剖析并发编程+JVM性能,深入Tomcat与MySQL!

收到请回复

Java 云计算 开源 架构 编程语言

JWT本无状态,为何却要存储在Redis破坏其无状态特性?

知识浅谈

JWT 9月月更

Github星标90K!京东架构师一篇讲明白百亿级并发系统架构设计

了不起的程序猿

Java 程序员 高并发 java程序员 高并发系统设计

数据、管理、分析和运营:大数据专家面临的四大挑战!

雨果

大数据

前端经典面试题(有答案)

loveX001

JavaScript 前端

MFC模拟消息发送,自定义以及系统消息

中国好公民st

c++ 消息分发 9月月更

Java进阶(二十一)java 空字符串与null区别

No Silver Bullet

Java null 9月月更 空字符串

你知道数据资产管理的目标是什么?

雨果

数据中台 数据资产管理

2022前端经典vue面试题(持续更新中)

bb_xiaxia1998

Vue 前端

TCPIP协议栈的心跳、丢包重传、连接超时机制实例详解

Java快了!

“基础-中级-高级”Java程序员面试合集,看完献出我的膝盖!

收到请回复

Java 云计算 开源 架构 编程语言

Scrum 实施过程的主要内容及5大常用工具

PingCode

20道高频react面试题(附答案)

beifeng1996

前端 React

2022前端二面必会vue面试题汇总

bb_xiaxia1998

Vue 前端

SAP ABAP 平台新的编程模型

Jerry Wang

SAP abap Netweaver 思爱普 9月月更

心血来潮,手绘一张Spring学习思维,内容详细全面,秋招面试必看!

收到请回复

Java 云计算 开源 架构 编程语言

现代数据栈如何降低数据平台的复杂度?

Kyligence

数据分析 云原生 指标中台 指标自动化

大数据ELK(二):Elasticsearch简单介绍

Lansonli

elasticsearch 9月月更

元宇宙与泛娱乐的邂逅:次世代第一CP养成记

脑极体

C++学习---STL中nullptr_t的实现原理

桑榆

c++ 源码阅读 9月月更

谁能说清楚数据资产管理与数据治理是什么关系?

雨果

数据治理

前端常见react面试题合集

beifeng1996

前端 React

什么是访问控制列表ACL?

wljslmz

acl 访问控制列表 9月月更

PANews与NFTScan联合推出Top50 NFT Collection全球影响力榜单

NFT Research

Ethereum NFT

网易易盾 GameSentry 正式开源,做游戏安全保障的尖兵利刃

网易智企

安全 测试

怎样才能开一场高效的迭代评审会?

LigaAI

Scrum 迭代 LigaAI 敏捷实践 企业号九月金秋榜

3D打印机打印模型的10大技巧

Dylan

3D模型

谁来说说数据质量评估的标准是什么?

雨果

数据质量

[极致用户体验] 让你的网页,适配微信大字号模式!体验超好,快来收藏

HullQin

CSS JavaScript html 前端 9月月更

Spring 框架使用了哪些设计模式?

Java快了!

spring框架

2022-09-15:Range模块是跟踪数字范围的模块。 设计一个数据结构来跟踪表示为 半开区间 的范围并查询它们。 半开区间 [left, right) 表示所有 left <= x < righ

福大大架构师每日一题

算法 rust 福大大

Oracle调整Java SE版本编号方案_Java_Charles Humble_InfoQ精选文章