For Java beginners, I often hear from my colleagues or see that the Java version and the JDK version are different on the Internet. I don’t understand the relationship between the two? In fact, the blogger also had this kind of confusion when he first learned Java. Today we will discuss it carefully. If there is something wrong, please correct it. If you don’t like it, don’t spray it, thank you!
Java version names: Java6, Java8, Java11, Java13 (current latest version Java17) and other Java version names of "Java X"
at the same time hear and see
JDK version name: JDK1.6, JDK1.8 and other "JDK1.X" JDK names.
Here we need to trace the development of Java, we search for "Java" on Baidu Encyclopedia
In 1995, Sun Corporation launched Oak for the first time, and changed its name to Java because the Oak trademark had been occupied.
In January 1996, Sun released Java's first development kit (JDK 1.0), which is the initial version Java1.0.
In June 1999, Sun released three versions of the second-generation Java platform (referred to as Java2): J2ME (Java2 Micro Edition, a micro version of the Java2 platform), which is used in mobile, wireless and limited resource environments; J2SE ( Java 2 Standard Edition, the Standard Edition of the Java 2 platform), applied to the desktop environment; J2EE (Java 2Enterprise Edition, the Enterprise Edition of the Java 2 platform), applied to Java-based application servers.
On September 30, 2004, J2SE1.5 was released. In order to express the importance of this version, J2SE 1.5 was renamed Java SE 5.0 (internal version number 1.5.0) , code-named "Tiger", and Tiger included the release of 1.0 from 1996. The most significant update since the release.
In June 2005, at the Java One conference, Sun released Java SE 6. At this time, the various versions of Java have been renamed, and the number 2 has been cancelled. For example, J2EE has been renamed JavaEE , J2SE has been renamed JavaSE, and J2ME has been renamed JavaME .
Since the release of JDK1.0 in 1996; it has since been named JDK1.1, JDK1.2, JDK1.3, JDK1.4, and adopted the naming method of 1.X until the version number was upgraded to 5.0 in September 2004. This new version For Java SE5.0 (or J2SE1.5), in June 2005, Sun Company terminated the 8-year-old J2SE, J2EE, and J2ME naming methods and enabled today's Java SE, Java EE, and Java ME naming methods. The subsequent versions are Java SE6, Java SE7, Java SE8, Java SE9, Java SE10, Java SE11, Java SE12... Java SE17, etc.
JDK corresponds to each version number from Java1.0 to Java9: JDK1.0, JDK1.2 ... JDK1.8, JDK1.9
Therefore, after Java10, we can understand that the corresponding names of JDK are: JDk10, JDK11, JDK12... JDK17
We can also see that the official website is named as follows:
Java ® Platform, Standard Edition and Java Development Kit
Version 17 API Specification
This document is divided into two parts:
Java SE
The Java Platform, Standard Edition (Java SE) API defines the core Java platform for general-purpose computing. These APIs are located in names ending in
java
.JDK
Java Development Kit (JDK) APIs are JDK-specific and not necessarily available in all implementations of the Java SE platform. These APIs are located in names ending in
jdk
.
All versions of Java SE are as follows:
Java SE version | JDK version | release time | development code | final version |
---|---|---|---|---|
Oak | 1995-05-23 | Oak (oak tree) | ||
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 (playground | 1.2.2_017 2003-10-02 |
J2SE 1.3 | JDK1.3 | 2000-05-08 | Kestrel (American 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 (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 |
The Java official website is as follows:
Java release history
This page tracks widely distributed Java SE releases and links to key information for each release.
Currently supported versions
Version | initial issue | current version | Version Information | end of life |
---|---|---|---|---|
17 | 2021-09-14 | 17 2021-09-14 |
Open the JDK project page 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, 后来
There's Java SE 7 and Java SE 8 again. However, the "-build" version numbers are 1.6.0, 1.7.0, and 1.8.0, respectively.
When Oracle makes some minor version change to fix some urgent problem, it is called an update. For example: Java
SE 8u31 is the 31st update of JavaSE 8 and its build number is 1.8.0_31. The update does not need to be installed
over the previous version, it will contain the latest version of the entire JDK. Also, not all updates are released publicly, so
don't panic if "Update 31" doesn't come after "Update 32".
----Quoted from "Java Core Technology" Volume 1 Chapter 2 2.1.1
Can refer to: