这里并不是说JDK的版本历史,也并不是追溯JDK的历史,搜索“JDK名称问题”甚至有些在说什么是JDK的(ˉ▽ˉ;) 。
问题的起因是在学习java的时候,遇到的一些JDK名称,比如看JVM的时候绕不过的内存区域JDK 1.7和JDK 1.8的区别、泛型是JDK 5引入的新特性等等,即在看开发相关的各个知识点的时候都会遇到某些东东是JDK哪个版本之后引入的,或者在哪个版本有很大的改变。
然后我就有了疑问,怎么JDK有这么多名称。那他们的顺序是怎么样的呢?感觉应该会有很多答案,但是实际搜索大部分是说“JDK之前是Sun公司的,后面被改名为J2SE、Java SE······哔哩啪啦”。需要的可以去搜索相关知识。
但是这并不是我要的答案,好像很少专门说命名规则的。这里的疑问是,他的命名规则是怎么样的呢?它是按照大小来分的吗?是JDK 1.7 < JDK 6因为1.7<6 这样子吗(发行时间的比较)?
以下仅是个人搜索一些资料后的总结。
正文开始
JDK各种版本号名称如下:J2SE、 Jase SE、JDK、Java(没错,原来平时说的安装Java就是安装JDK ),其实这些都统称为JDK。一般而言,我觉得大部分开发相关的知识点的教学也是遵循这个规则,经常看到“哪个哪个东东是基于JDK哪个版本作为区别” ,看多了就不禁有个疑问,怎么这个JDK怎么这么多名字?或许这对大佬们来说是常识,只有菜鸡才会有弱弱写一下 hhhhhh 。
那它是怎么命名的呢?是否跟上面提到的一样,JDK后面带的数字越大越新(如果是的话那多简单啊)?很显然不是,JDK在早期版本的时候,一般会用“1.x”这个格式来命名。例如JDK 1.5,JDK 1.6。
所以如果是JDK 1.x这种格式,那就是数字越大发行时间越新。然后到了1.8,这时候发现下个版本叫1.9没什么技术含量(这个理由是个人瞎编),所以JDK 1.9改名为JDK 9,然后往后的版本号就都是按照这个规则来命名了。即下个版本为JDK 10、JDK 11......
有人遇到一些类似JDK 8.0、JDK 8这种,其实JDK 8.0 == JDK 8,这两个是一样的,只是命名形式不同。那我们上面所说的JDK 9才开始用这种整数的,怎么突然冒出来个JDK 8,其实这个JDK 8就是JDK 1.8,也可以叫JDK 8.0。即:
JDK 8 == JDK 1.8 == JDK 8.0
同理,JDK 1.6我们也可以称为JDK 6。这个问题大概就是这样,以下表格是对上述回答的补充,此表格涵盖了Java JDK版本的主要历史,以及其中一些版本的标准名称。不过需要注意这并不是最新的,需要最新的版本信息的建议查阅Oracle或OpenJDK官方网站。欢迎更正补充~
JDK版本 | 发布日期 | 版本名称 |
---|---|---|
JDK 1.0 | 1996年1月23日 | 无 |
JDK 1.1 | 1997年2月19日 | 无 |
JDK 1.2 | 1998年12月8日 | Java 2(J2SE 1.2) |
JDK 1.3 | 2000年5月8日 | Java 2(J2SE 1.3) |
JDK 1.4 | 2002年2月6日 | Java 2(J2SE 1.4) |
JDK 5.0 | 2004年9月30日 | Java 5 / J2SE 5.0 / Java SE 5 |
JDK 6 | 2006年12月11日 | Java 6 / J2SE 6 / Java SE 6 |
JDK 7 | 2011年7月28日 | Java 7 / Java SE 7 |
JDK 8 | 2014年3月18日 | Java 8 / Java SE 8 |
JDK 9 | 2017年9月21日 | Java 9 / Java SE 9 |
JDK 10 | 2018年3月20日 | Java 10 / Java SE 10 |
JDK 11 | 2018年9月25日 | Java 11 / Java SE 11 |
JDK 12 | 2019年3月19日 | Java 12 / Java SE 12 |
JDK 13 | 2019年9月17日 | Java 13 / Java SE 13 |
JDK 14 | 2020年3月17日 | Java 14 / Java SE 14 |
JDK 15 | 2020年9月15日 | Java 15 / Java SE 15 |
JDK 16 | 2021年3月16日 | Java 16 / Java SE 16 |
JDK 17 | 2021年9月14日 | Java 17 / Java SE 17 |