初学Java时便一直疑惑Java版本号到底是如何命名的?时常在网上看到Java5、Java6、Java7、Java8 (到今天已经到了Java12了,2019.4.5) 这一类 “Java X” 的Java版本名称,同时又会看到诸如JDK1.5、JDK1.6这中 “JDK1.X” 的JDK叫法。一直以来都在纠结Java以及JDK的规范版本名称到底是如何,直到最近在几本书上看到了相关的解释才有点明白,现总结在这里:

首先1996年发布了最初版本Java1.0(此前原型为1995年的Oak,因Oak商标已被占用后改名为Java),此后为Java1.1、J2SE1.2、J2SE1.3、J2SE1.4、采用 1.X的命名方式,直到2004年的JavaOne会议后版本数提升为5.0,这一新版本为Java SE5.0(或J2SE5.0,此处存在疑问,网上使用较多为Java SE5),在2006年Sun公司终结了已经有8年历史的J2SE、J2EE、J2ME的命名方式启用了今天的 Java SE、Java EE、Java ME  命名方式,而此后的版本为Java SE6、Java SE7、Java SE8、Java SE9、Java SE10、Java SE11、Java SE12。

而JDK则在 Java1.0 到 Java9 对应每一个版本号 :JDK1.0、JDK1.2 ... JDK1.8、JDK1.9,Java10以后JDK对应名称为:JDk10、JDK11、JDK12。

时间线如下:

Java SE版本时间线
         Java SE版本               JDK版本            发布时间                                      开发代号
Oak   1995-05-23 Oak(橡树)
Java 1.0 JDK1.0 1996-01-23  
Java 1.1 JDK1.1 1997-02-18  
J2SE 1.2 JDK1.2 1998-12-04 Playground(运动场
J2SE 1.3 JDK1.3 2000-05-08 Kestrel(美洲红隼)
J2SE 1.4 JDK1.4 2002-02-13 Merlin(灰背隼)
Java SE 5.0 JDK1.5 2004-09-29 Tiger(老虎)
Java SE 6 JDK1.6 2006-12-11 Mustang(野马)
Java SE 7 JDK1.7 2011-07-28 Dolphin(海豚)
Java SE 8 JDK1.8 2014-03-18 Spider(蜘蛛)
Java SE 9 JDK1.9 2017-09-21  
Java SE 10 JDK10 2018-03-21  
Java SE 11 JDK11 2018-09-25  
Java SE 12 JDK12 2019-3-20  

下图来自《Java核心技术》卷1 第2章 2.1.1

    你已经看到, JDK 是 Java Development Kit 的缩写。有点混乱的是: 这个工具包的版本
1.2 ~ 版本 1.4 被称为 Java SDK (软件开发包, Software Development Kit )。 在某些场合下,
还可以看到这个过时的术语。另外, 还有一个术语是 Java 运行时环境( JRE ), 它包含虚拟机
但不包含编译器。这并不是开发者想要的环境, 而是专门为不需要编译器的用户而提供。
接下来, Java SE 会大量出现, 相对于 Java EE ( Enterprise Edition) 和 Java ME ( Micro
Edition ), 它是 Java 的标准版。Java 2 这种提法始于 1998 年。当时 Sim 公司的销售人员感觉增加小数点后面的数值改
变版本号并没有反映出 JDK 1.2 的重大改进。但是,由于在发布之后才意识到这个问题, 所
以决定开发工具包的版本号仍然沿用 1.2, 接下来的版本是 1.3、 1.4 和 5.0, 但是, Java 平台
被重新命名为 Java 2。因此, 就有了 Java 2 Standard Edition Software Development Kit ( Java 2
标准版软件开发包)的 5.0 版,即 J2SE SDK 5.0。幸运的是,2006 年版本号得到简化。 Java 标准版的下一个版本取名为 Java SE 6, 后来
又有了 Java SE 7 和 Java SE 8。不过,“- 内部” 版本号分别是 1.6.0、 1.7.0 和 1.8.0。
当 Oracle 为解决一些紧急问题做出某些微小的版本改变时, 将其称为更新。 例如: Java
SE 8u31 是 JavaSE 8 的第 31 次更新, 它的内部版本号是 1.8.0_31。 更新不需要安装在前一
个版本上,它会包含整个 JDK 的最新版本。 另外, 并不是所有更新都公开发布, 所以如果
“ 更新 31” 之后没有“ 更新 32”,你也不用惊慌。----引自《Java核心技术》卷1 第2章 2.1.1

JAVA版本号的问题 Java版本号与JDK版本相关推荐

  1. java编译器jdk版本_以编程方式确定Java类的JDK编译版本

    java编译器jdk版本 当需要确定使用哪个JDK版本来编译特定的Java .class文件时, 通常使用的方法是使用javap并在javap输出中查找列出的"主要版本". 我在我 ...

  2. linux修改jdk版本无效,关于windows和linux系统更换JDK版本后,修改环境变量也无法生效的原因和解决办法...

    今天遇到了一个问题: 我linux系统之前安装JDK12,今天将其改成了JDK1.8,并修改了环境变量,但是通过java -version命令显示的依旧是JDK12的版本. 这是因为,当使用安装版本的 ...

  3. macOSLinux设置JDK版本

    MacOS 下安装多个版本的 JDK 并统一管理 现在的 MacOS 都不自带 JDK 了,如果你在未安装 JDK 的 MacOS 中执行 Java 命令会出现如下提示: AigeStudio@aig ...

  4. windows下JDK版本之间的切换

    安装JDK的时候个人比较推荐使用压缩包的方式安装. 如果你的电脑存在多个JDK版本的时候,如果使用的是压缩包解压的方式安装的话,你可能仅仅需要更改一下JAVA_HOME环境变量 你敲java -ver ...

  5. linux jdk版本随时切换

    项目处理问题遇到如下情况,引用第三方的jar包报出ClassDefNotFoundException错误导致app崩溃,双方沟通确认该类存在且排除工程未clean,代码混淆导致等原因. 注意到编译ap ...

  6. JAVA版本号的问题——Java版本号与Jdk版本

    初学Java时便一直疑惑Java版本号到底是如何命名的?时常在网上看到Java5.Java6.Java7.Java8 (到今天已经到了Java12了,2019.4.5) 这一类 "Java ...

  7. 查询当前电脑安装的Java/JDK版本的方法(查看Java/JRE版本号)

    查看当前电脑安装的Java/JDK版本的方法 1.电脑键盘同时按住Windows+R按键,弹出运行程序,输入cmd并确定 2.在黑框控制台中输入java --version,即可查看Java版本号 3 ...

  8. idea 配置java版本号_IDEA-Maven项目的jdk版本设置方法

    在 Intellij Idea 中,我们需要设置 Settings 中的 Java Compiler 和 Project Structure 中的 Language Level 中的 jdk 版本为自 ...

  9. java 四字节uid,Java入门教程-序列化版本号serialVersionUID的作用

    原标题:Java入门教程-序列化版本号serialVersionUID的作用 Java序列化是将一个对象编码成一个字节流,反序列化将字节流编码转换成一个对象.序列化是Java中实现持久化存储的一种方法 ...

最新文章

  1. SAP HUM 嵌套HU初探 III
  2. 快速整理excel_3小时整理了33个excel动图技巧,能快速提高工作效率,收藏备用吧...
  3. Metaspace 引起的 FullGC 问题排查过程及解决方案
  4. python笔记基础-Python笔记-基础
  5. [转]sqlserver 数据类型 及使用考虑
  6. 在项目中遇到的一些bug
  7. Kali Linux
  8. 业务规则的生命周期管理
  9. 设置Django关闭Debug后的静态文件路由
  10. WebSocket——stomp连接错误[Whoops! Lost connection to XXX]解决方案
  11. iOS开发 iOS10兼容访问http
  12. 重磅!K8S 1.18版本将内置支持SideCar容器。
  13. 《计算机应用基础》18春作业,【北语网院】18春《计算机应用基础》作业_2.pdf...
  14. 软件开发架构的演变过程
  15. Python字典(二)
  16. 你不可不会的几种移动零的方法
  17. Ansible复制文件copy和执行脚本shell(学习笔记二)
  18. makefile语法_Makefile的语法
  19. 观看台式计算机组成观后感,计算机组成原理实验一:运算器实验
  20. java通讯录管理系统答辩_java版通讯录管理系统

热门文章

  1. 算法 + 算法 = 新算法
  2. OEEL——使用OEEL快速画出精美图案(以土地利用转移变化为例)
  3. 一维数组、二维数组的大小、长度与偏移
  4. 如何在shell脚本中定义数组及遍历
  5. 【C++】结构体数组
  6. linux服务器的Gzip文件压缩方法[转]
  7. 从keras看VGG16结构图
  8. Java实现打印输出菱形
  9. 如何在autocad中制作幻灯片文件(.sld)
  10. 会员管理小程序实战开发教程-消费记录功能