java10系列(一)Time-Based Release Versioning

本文主要解讀下java10的Time-Based Release Versioningjava

實例

  • java9版本
java -version
java version "9"
Java(TM) SE Runtime Environment (build 9+181)
Java HotSpot(TM) 64-Bit Server VM (build 9+181, mixed mode)
  • java10版本
java -version
openjdk version "10" 2018-03-20
OpenJDK Runtime Environment 18.3 (build 10+46)
OpenJDK 64-Bit Server VM 18.3 (build 10+46, mixed mode)
能夠看到10版本的版本號命名編號了,新增了GA的日期,方便開發者知道這個版本已經發布了多久,好評估是否有安全問題、bug之類的,看是否須要升級到最新版

版本命名機制

版本號格式(VNUM)

$FEATURE.$INTERIM.$UPDATE.$PATCH
  • FEATURE主要是major版本號,好比10,每6個月新增1次,好比2018年9月發佈的就是JDK11
  • INTERIM主要是minor版本號,在改成6個月發佈一次以後,這個就固定爲0,這裏仍保留
  • UPDATE主要是security或bug相關fix的版本號,第一次遞增在1個月後,以後每3月遞增1次,好比2018年4月發佈的就是JDK10.0.1,7月發佈的就是JDK10.0.2
  • PATCH主要是緊急的一些修復版本

build信息

$VNUM(-$PRE)?\+$BUILD(-$OPT)?
$VNUM-$PRE(-$OPT)?
$VNUM(+-$OPT)?
$VNUM就是上面講的版本號,$PRE是預發佈的版本,好比ea版本,$BUILD是內部構建版本號,$OPT是可選的信息

java --version格式

$ java --version
openjdk ${java.version} ${java.version.date}${LTS}
${java.runtime.name}${JVV} (build ${java.runtime.version})
${java.vm.name}${JVV} (build ${java.vm.version}, ${java.vm.info})

實例

  • update
$ java --version
openjdk 10.0.1 2018-04-19
OpenJDK Runtime Environment (build 10.0.1+13)
OpenJDK 64-Bit Server VM (build 10.0.1+13, mixed mode)
這裏顯示的是2018-04-19發佈的JDK 10.0.1的build 13
  • LTS
$ java --version
openjdk 11 2018-09-20 LTS
OpenJDK Runtime Environment (build 11+42-LTS)
OpenJDK 64-Bit Server VM (build 11+42-LTS, mixed mode)
這裏顯示的是2018-09-20發佈的JDK11的LTS版本

小結

本文主要是粗略解讀了下新的版本命名機制,如要深刻研究,能夠查看JEP 322: Time-Based Release Versioning安全

doc

相關文章
相關標籤/搜索