转载@

对于Java初学者,经常会听到同事,或看到网上Java版本和JDK版本不一的叫法,不明白这两者到底什么关系?其实博主当年初学Java时也有这样的困惑,今天我们就来好好探讨一下,如有不对之处,请加以指正,不喜勿喷,谢谢!

Java版本叫法:Java6、Java8、Java11、Java13 (当前最新版本Java17) 等这一类 “Java X” 的Java版本名称

同时又会听到,看到

JDK版本叫法:JDK1.6、JDK1.8等这种 “JDK1.X” 的JDK叫法。

这里我们就需要追溯一下Java的发展历程了,我们在百度百科上 搜索一下 “Java”

1995年,Sun公司首推Oak,因Oak商标已被占用后改名为Java

1996年1月,Sun公司发布了Java的第一个开发工具包(JDK 1.0),也就是最初版本Java1.0

1999年6月,Sun公司发布了第二代Java平台(简称为Java2)的3个版本:J2ME(Java2 Micro Edition,Java2平台的微型版),应用于移动、无线及有限资源的环境;J2SE(Java 2 Standard Edition,Java 2平台的标准版),应用于桌面环境;J2EE(Java 2Enterprise Edition,Java 2平台的企业版),应用于基于Java的应用服务器。

2004年9月30日,J2SE1.5发布,为了表示该版本的重要性,J2SE 1.5更名为Java SE 5.0(内部版本号1.5.0),代号为“Tiger”,Tiger包含了从1996年发布1.0版本以来的最重大的更新。

2005年6月,在Java One大会上,Sun公司发布了Java SE 6。此时,Java的各种版本已经更名,已取消其中的数字2,如J2EE更名为JavaEE,J2SE更名为JavaSE,J2ME更名为JavaME。

自1996年发布JDK1.0;此后命名为JDK1.1、JDK1.2、JDK1.3、JDK1.4、采用 1.X 的命名方式,直到2004年9月版本号提升为5.0,这一新版本为Java SE5.0(或J2SE1.5),在2005年6月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... Java SE17等。

JDK则在 Java1.0 到 Java9 对应每一个版本号 :JDK1.0、JDK1.2 ... JDK1.8、JDK1.9

因此,Java10以后我们可以理解为JDK对应名称为:JDk10、JDK11、JDK12... JDK17

我们也可以看到官网命名如下:

Java ®平台标准版和 Java 开发工具包
版本 17 API 规范

本文档分为两部分:

Java SE

Java 平台标准版 (Java SE) API 定义了用于通用计算的核心 Java 平台。这些 API 位于名称以java.

JDK

Java 开发工具包 (JDK) API 特定于 JDK,不一定在 Java SE 平台的所有实现中都可用。这些 API 位于名称以jdk.

Java SE所有版本如下:

 Java SE版本           JDK版本            发布时间          开发代号    最终版本
Oak   1995-05-23 Oak(橡树)  
Java 1.0 JDK1.0 1996-01-23   1.0.2
1996-05-07
Java 1.1 JDK1.1 1997-02-18   1.1.8_010
2002-10-09
J2SE 1.2 JDK1.2 1998-12-04 Playground(运动场 1.2.2_017
2003-10-02
J2SE 1.3 JDK1.3 2000-05-08 Kestrel(美洲红隼) 1.3.1_29
2010-10-12
J2SE 1.4 JDK1.4 2002-02-13 Merlin(灰背隼) 1.4.2_42
2013-02-19
Java SE 5.0 JDK1.5 2004-09-29 Tiger(老虎) 5.0u85
2015-04-15
Java SE 6 JDK1.6 2006-12-12 Mustang(野马) 6u211
2018-10-16
Java SE 7 JDK1.7 2011-07-11 Dolphin(海豚) 7u321
2021-10-19
Java SE 8 JDK1.8 2014-03-18 Spider(蜘蛛) 8u311
2021-10-19
Java SE 9 JDK1.9 2017-09-21   9.0.4
2018-01-16
Java SE 10 JDK10 2018-03-20  

10.0.2

2018-07-17

Java SE 11 JDK11 2018-09-25   11.0.13
2021-10-19
Java SE 12 JDK12 2019-3-19   12.0.2
2019-07-16
Java SE 13 JDK13 2019-09-19   13.0.2
2020-01-14
Java SE 14 JDK14 2020-03-17   14.0.2
2020-07-14
Java SE 15 JDK15 2020-09-15   15.0.2
2021-01-19
Java SE 16 JDK16 2021-03-16   16.0.2
2021-07-20
Java SE 17 JDK17 2021-09-14   17
2021-09-14

Java官网如下:

Java 发行历史

此页面跟踪广泛分发的 Java SE 版本以及每个版本的关键信息的链接。

当前支持的版本

版本 初始发行 当前版本 版本信息 生命的尽头
17 2021-09-14 17
2021-09-14
打开 JDK 项目页面
JSR 392
2029-09-30
11 2018-09-25 11.0.13
2021-10-19
发行说明
文档
认证配置
风险表
打开 JDK 项目页面
JSR 384
2026-09-30
8 2014-03-18 8u311
2021-10-19
发行说明
文档
认证配置
风险表
JSR 337
2030-12-31
7 2011-07-11 7u321
2021-10-19
发行说明
文档
认证配置
风险表
JSR 336
2022-07-19

未来版本

版本 初始发行 版本信息
18 2022-03-15 打开 JDK 项目页面
JSR 393

不再受支持的版本

版本 初始发行 最终版本 版本信息
16 2021-03-16 16.0.2
2021-07-20
发行说明
文档
认证配置
风险表
打开 JDK 项目页面
JSR 391
15 2020-09-15 15.0.2
2021-01-19
发行说明
文档
认证配置
风险表
打开 JDK 项目页面
JSR 390
14 2020-03-17 14.0.2
2020-07-14
发行说明
文档
认证配置
风险表
打开 JDK 项目页面
JSR 389
13 2019-09-19 13.0.2
2020-01-14
发行说明
文档
认证配置
风险表
打开 JDK 项目页面
JSR 388
12 2019-03-19 12.0.2
2019-07-16
发行说明
文档
认证配置
风险表
打开 JDK 项目页面
JSR 386
10 2018-03-20 10.0.2
2018-07-17
发行说明
文档
认证配置
风险表
打开 JDK 项目页面
JSR 383
9 2017-09-21 9.0.4
2018-01-16
发行说明
文档
认证配置
风险表
JSR 379
6 2006-12-12 6u211
2018-10-16
发行说明
文档
认证配置
风险矩阵
JSR 270
5 2004-09-30 5.0u85
2015-04-15
发行说明
文档
认证配置
风险表
JSR 176
4 2002-02-13 1.4.2_42
2013-02-19
发行说明
风险矩阵
JSR 59
3 2000-05-08 1.3.1_29
2010-10-12
发行说明
风险矩阵
2 1998-12-04 1.2.2_017
2003-10-02
 
1 1997-02-18 1.1.8_010
2002-10-09
 
0 1995-05-23 1.0.2
1996-05-07

Java是面向对象的编程语言,在我们开发Java应用的程序员的专业术语里,Java这个单词其实指的是Java开发工具,也就是JDK(Java Development Kit)。所以我们常常在CSDN等各大程序员论坛讨论到安装Java8或者JDK8或者JDK1.8或J2SE8或J2SE1.8或J2SE8或J2SE1.8,其实这3个专业词汇的概念是一样的。

 我们以Java8(JDK1.8举例说明)

(1)Java与JDK的区别与关系

在用户眼中,Java是Java应用;

在程序员眼中,Java是Java开发工具,所以Java等价于JDK。

(2)JDK8与JDK1.8的区别与关系

JDK8或者JDK1.8是由于自从JDK1.5/JDK5命名方式改变后遗留的新旧命令方式问题。所以JDK8或者JDK1.8也是同一个东西。

(3)JDK与J2SE的区别与关系

JAVA就是指JDK开发工具,所以我们可以理解为JAVA等价于JDK。又因为JAVA有3个版本:J2SE J2EE J2ME,所以J2SE是JDK的3个版本中的其中一个,即标准版本。

简而言之:我们口中说的 Java8、JDK8、JDK1.8 其实都是同一个东西。

Java术语,下图来自《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 年。当时 Sun 公司的销售人员感觉增加小数点后面的数值改
变版本号并没有反映出 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 (计算机编程语言)

JAVA版本号的问题 Java版本号与JDK版本_renhq-CSDN博客_java版本和jdk版本

java

来自专栏

JavaSE

 MinggeQingchun 150篇文章  18人订阅

发布于2021-10-01著作权归作者所有

Java版本和JDK版本相关推荐

  1. java 对应sql驱动版本_关于Oracle JDBC驱动版本、JDK版本、数据库版本对应关系(相关的报错:ORA-28040)...

    关于Oracle JDBC驱动版本.JDK版本.数据库版本对应关系 说明: 1.Oracle JDBC驱动版本查看方式(Oracle JDBC驱动程序随Oracle数据库服务器一起提供)(用户:Ora ...

  2. java 如何查看jdk版本位数

    java 如何查看jdk版本&位数 CreateTime--2018年4月22日18:20:18 Author:Marydon 方式一:通过dos命令实现 win+R-->cmd--&g ...

  3. Java版本和JDK版本对应关系

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

  4. IDEA版本和JDK版本对应关系

    IntelliJ IDEA发行版本:IntelliJ IDEA Versions IDEA版本和JDK版本对应关系:Supported Java versions and features 以下为整理 ...

  5. Android各版本对应的SDK版本,及SDK版本对应JDK版本

    Android各版本对应的SDK版本,及SDK版本对应JDK版本 平台版本 SDK版本 版本名称 Android 9.0 28 Pie (Android P) Android 8.1 27 Oreo( ...

  6. Eclipse版本和JDK版本对应关系

    Eclipse发行版本:Simultaneous Release - Eclipsepedia Eclipse版本和JDK版本对应关系:Eclipse/Installation - Eclipsepe ...

  7. Eclipse版本和JDK版本对应关系(转)

    直接贴链接了 Eclipse版本和JDK版本对应关系_Markix的博客-CSDN博客_jdk18对应的eclipse 版本代号    平台版本    主要版本发行日期    SR1发行日期    S ...

  8. maven 构建java项目,jdk版本问题

    为什么80%的码农都做不了架构师?>>>    使用maven构建Java项目,默认的 jdk 版本是1.5 详情见官方说明:https://maven.apache.org/plu ...

  9. java:javap查看class文件的JDK版本塈JDK版本与major version(45~55)的对照表

    运行 Java 应用程序时,JRE 版本必须与用于编译应用程序的 JDK 版本匹配或更高. 当尝试使用较低版本的 Java 运行高版本 JDK编译的应用程序时,就会抛出UnsupportedClass ...

最新文章

  1. 300米远程深度估计:港科大重磅开源自动驾驶深度感知新技术,远超现有雷达|CVPR2020
  2. java集合概念初步介绍
  3. OSPF 邻接关系建立
  4. HashSet存储自定义对象保证元素唯一性图解原理及代码优化
  5. sdut 数字三角形问题
  6. 技术+案例详解无监督学习Autoencoder
  7. WinForm 中自定义文件与自己的应用程序相关联
  8. 软件性能测试——瓶颈分析方法,性能测试——瓶颈分析方法
  9. 常见的工业通讯协议有哪些
  10. 1.1初识sakura语法
  11. java毕业设计新生宿舍管理系统Mybatis+系统+数据库+调试部署
  12. 三分钟给女神画张素描照
  13. 接口用例设计从哪些方面考虑
  14. 8月11日 网工学习 APR协议 传输层协议 TCP UDP 数据封装转发全过程
  15. 钉钉小程序文本框内容换行符号\n的解析处理
  16. 思维导图软件哪个免费更好用?MindManager、iMindMap、MindMappe
  17. 当本本遇上蓝牙手机——玩转蓝牙无线上网、无线控制
  18. Jackson序列化时实现任意类型自定义转换
  19. 交通科研狗日常论文分析(1)考虑驾驶风格的跟驰模型构建及交通震荡仿真研究
  20. 订单数据库设计(sql server)

热门文章

  1. 生物信息学之抗癌药物反应论文阅读四:MD-WDNN
  2. 人工智能+智能运维解决方案_如何建立对人工智能解决方案的信任
  3. spring事物 设计模式_是什么使事物变得美丽,以及如何在设计中使用它
  4. nginx做反向代理和后端web服务器之间的交互
  5. vim自动格式化代码转载
  6. Cannot create an instance of class AndroidViewModel (androidx ViewModelProvider AndroidViewModel)
  7. 手机的 32K,26M时钟电路作用 (转载于 52rd zsqt8888的专栏)
  8. Google Open Images Dataset V4 百度网盘地址。
  9. 一个应届毕业生的七次 悲惨 求职经历
  10. nmcli命令详解>>>创建热点,连接wifi,管理连接等