【AICon】探索RAG 技术在实际应用中遇到的挑战及应对策略!AICon精华内容已上线73%>>> 了解详情
写点什么

Java 新版本不是 JDK 1.9

  • 2014-12-05
  • 本文字数:1541 字

    阅读完需:约 5 分钟

JDK 增强提案(JEP)223 是一种新的 JDK 版本命名规则,旨在使主要版本、小版本及安全版本的辨认更简单。它更简单、更直观、易于解析,并且与当前的行业做法一致,尤其是“语义版本命名(Semantic Versioning)”规则。例如,如果使用新的版本命名规则,版本字符串JDK 1.7.0_65-b20(7u65)将变成JDK 7.6.15+20(7.6.15)。

在现有的JDK 版本命名规则中,“JDK 7 Update 65”、“JDK 1.7.0_65”和“JDK 7u65”是同一版本的不同名称。要识别和比较这些版本,简单地对解析出的标记逐点比较是不够的,这需要一个相当复杂的算法。另外,小写字母“u”既不是行业标准,也不是语言无关的。在现有的JDK 数字命名规则中,小版本是20 的倍数,它包含除安全修复之外的更新。安全版本是奇数,在之前小版本的基础上加5 或6 得出。那些不熟悉这种数字命名规则的用户可能会认为“JDK 7 Update 60”是“JDK 7 Update 55”之后的第五个版本,并且错误地认为前者有更多安全方面的修复。小版本和安全版本的这种用一个数值编码的方法不容易辨认,而且也会跳过许多版本。

JEP 223 的目标:版本应该易于理解和解析,应该与当前的语义版本命名这一行业做法一致,而且它应该可供现有的打包和部署系统使用。该提案还将提供一个 API,用于版本字符串解析、验证和比较。改变先前 JDK 版本的版本字符串格式并不是该项提案的目标。

版本号是一个由非负整数组成的非空序列,由句点分隔。它不包含前导零,并且匹配正则表达式 [1-9][0-9]*(\.(0|[1-9][0-9]*))*。前三个基本部分是 $MAJOR.$MINOR.$SECURITY。主要版本包含了新 Java SE 平台规范所指定的重要新特性,其发布时 $MAJOR 会增加。小的更新版本可能包含兼容的 Bug 修复、修改了标准 API 以及实现了像新的垃圾收集器或支持新硬件架构这样的新特性,其发布时 $MINOR 会增加。安全更新版本包含了重要的补丁,其发布时 $SECURITY 会增加。当 $MAJOR 增加时,$MINOR 和 $SECURITY 会重置为 0。在 $MAJOR 值一定的情况下,不管 $MINOR 值是多少,$SECURITY 值越大就表明它是一个更安全的版本。

版本字符串由版本号、可选的预发布及构建信息组成。预发布标识 ea 表示早期试用版本,正处于活跃开发状态。每完成一次构建,内部版本号都会增加,当版本号的任何部分增加时,内部版本号都会重置为 1。去掉尾随零的版本字符串称为短版本字符串。下表比较了 JDK 9 的两种可能的版本字符串,包括现有格式和提案格式。请注意,现有的假定 JDK 版本号永远以 1 开头的代码将无法正常工作。

复制代码
Existing Proposed
Release Type long short long short
------------ -------------------- --------------------
Early Access 1.9.0-ea-b19 9-ea 9.0.0-ea+19 9-ea
Major 1.9.0-b100 9 9.0.0+100 9
Security #1 1.9.0_5-b20 9u5 9.0.1+20 9.0.1
Security #2 1.9.0_11-b12 9u11 9.0.2+12 9.0.2
Minor #1 1.9.0_20-b62 9u20 9.1.2+62 9.1.2
Security #3 1.9.0_25-b15 9u25 9.1.3+15 9.1.3
Security #4 1.9.0_31-b08 9u31 9.1.4+8 9.1.4
Minor #2 1.9.0_40-b45 9u40 9.2.4+45 9.2.4

该提案于 2014 年 10 月 20 日创建,现在处于候选状态,将随 JDK 9 一起发布。要了解更多信息,包括一个 JDK Java API 示例,请阅读 JEP 223 以及 JBS(JDK Bug System)8061493

查看英文原文:**** New Java Version - it’s not JDK 1.9

2014-12-05 00:556638
用户头像

发布了 1008 篇内容, 共 372.4 次阅读, 收获喜欢 340 次。

关注

评论

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

python小知识-命令行参数处理之argparse

AIWeker

Python python小知识 7月月更

云计算三类巨头:IaaS、PaaS、SaaS,分别是什么意思,应用场景是什么?

wljslmz

云计算 IaaS PaaS SaaS 7月月更

【数据库学习】Redis 解析器&&单线程&&模型

恒山其若陋兮

7月月更

Prometheus 运维工具 Promtool (一)Check 功能

耳东@Erdong

Prometheus 7月月更 Promtool

一张图进阶 RocketMQ - 整体架构

三此君

kafka RocketMQ MQ 消息队列 消息中间件

给生活加点惊喜,做创意生活的原型设计师丨编程挑战赛 x 选手分享

声网

人工智能’

一张图进阶 RocketMQ - 消息发送

三此君

kafka RocketMQ MQ 消息队列 消息发送

一张图进阶 RocketMQ - 通信机制

三此君

RocketMQ Netty MQ 消息队列 异步通信

你还不会Vue3吗

bo

前端 Vue 3 7月月更

JAVA编程规范之索引规约

源字节1号

后端开发

高阶产品如何提出有效解决方案?(1方法论+2案例+1清单)

张姣发

产品经理

Qt | 事件系统 QEvent

YOLO.

qt 7月月更

一张图进阶 RocketMQ - NameServer

三此君

kafka RocketMQ MQ 消息队列 分布式消息中间件

做好项目管理的10个关键点和5大措施

PingCode

RocketMQ 消息集成:多类型业务消息-普通消息

阿里巴巴云原生

阿里云 RocketMQ 云原生 消息队列

LeetCode-69. x的平方根(java)

bug菌

Leet Code 7月月更

UART

贾献华

7月月更

DDos攻击分类

穿过生命散发芬芳

DDoS 7月月更

如何创建和管理自定义的配置信息

Damon

7月月更

把字符串转换成整数与不要二

未见花闻

7月月更

QDir类的使用 以及部分解释

小肉球

qt 7月月更

iOS中对象等同性isEqual:和hash

NewBoy

ios 前端 移动端 iOS 知识体系 7月月更

阿里 Seata 新版本终于解决了 TCC 模式的幂等、悬挂和空回滚问题

阿里巴巴云原生

阿里云 开源 微服务 云原生 seata

数据中台建设(一):数据中台出现的背景

Lansonli

数据中台 7月月更

一种兼容、更小、易用的WEB字体API

devpoint

CSS 字体设置 7月月更

企业运营自媒体不能“自嗨”:内容要接地气不能接广告

石头IT视角

《ArchSummit:从珍爱微服务框架看架构演进》

后台技术汇

架构 后台开发 架构师 后台 ArchSummit

JDBC 驱动升级到 Version 8.0.28 连接 MySQL 的踩坑记录

攻城狮杰森

MySQL JDBC database 7月月更

一张图进阶 RocketMQ - 消息存储

三此君

RocketMQ MQ 消息队列 broker commitlog

“你真的入门前端了吗”

bo

前端 7月月更

Java新版本不是JDK 1.9_Java_Bienvenido David_InfoQ精选文章