写点什么

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:312450
用户头像

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

关注

评论

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

说要内推阿里的学长,替我整理好的Java面试题,分享给大家

Java spring 程序员 架构 编程语言

网关乱码问题排查纪实

小江

k8s java; 字符集 ,docker JVM;

阿里内部神作Java并发原理JDK源码手册让Github沸腾,现已开源

Java 编程 程序员 面试 计算机

SRE实战(01)|初识SRE,探索SRE如何推进技术债务改造

方勇(gopher)

微服务 架构设计 SRE 服务治理 构架

终于有人把大厂面试必考的动态规划、链表、二叉树、字符串全部整理出来了

Java 架构 面试 算法 后端

Go 中更好的定时调度

baiyutang

golang 9月日更

模块四作业设计千万级学生管理系统的考试试卷存储方案

apple

24. AI只是人类的工具

Databri_AI

人工智能

java 虚拟机 GC 学习笔记二

风翱

JVM 9月日更

Alibaba2021全新Java高并发终极版手册,现已在Github上标星80K

Java 编程 程序员 面试 计算机

"你的网站加载速度很慢怎么办?"——技术经理在面试中可能遇到的可怕问题

云原生

架构 面试 web技术 职业生涯

linux之systemctl命令

入门小站

Linux

iOS 优雅的处理网络数据,你真的会吗?不如看看这篇.

HelloWorld杰少

大前端 引航计划

Nebula Graph 源码解读系列 | Vol.03 Planner 的实现

NebulaGraph

图数据库 源码学习 分布式图数据库

「免费开源」基于Vue和Quasar的前端SPA项目crudapi零代码开发平台后台管理系统实战之元数据导出导入(十五)

crudapi

Vue API 元数据 crudapi quasar

绝绝子!LeetCode官网首发的1137页的数据结构与算法刷题指南

Java 编程 程序员 面试 计算机

前端性能优化实战(一)

Augus

JavaScript 9月日更

一分钟了解MACH架构

俞凡

架构

【得物技术】MySQL 8.0:新的身份验证插件(caching_sha2_password)

得物技术

MySQL 默认方法 得物技术 身份 身份插件

Linux用户所属组变更

在即

9月日更

做一个有温度的程序员

牧小农

什么是产品感?

吴世亮

产品 产品设计 数字化 产品感 sense

阿里P8不眠不休,用了两个月整理出这本32W字Java面试手册,在Github上引起震动

Java 编程 程序员 面试 计算机

架构实战训练营|作业|模块4

Frode

「架构实战营」

被阿里奉为“座上宾”!2021公认最权威的分布式微服务指导手册

Java 程序员 面试 微服务 计算机

【SpringCloud 技术专题】「Eureka 源码分析」从源码层面让你认识 Eureka 工作流程和运作机制(下)

码界西柚

微服务 SpringCloud Eureka 注册中心 9月日更

Postman 如何调试加密接口?

星安果

Postman

北鲲云超算平台有哪些形式为高性能计算用户提供算力服务?

北鲲云

架构实战营模块四

WolvesLeader

「架构实战营」

Nebula Graph 源码解读系列 | Vol.02 详解 Validator

NebulaGraph

图数据库 源码学习 分布式图数据库

按键编码ASCII对照表

入门小站

工具

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