Java版本和JDK版本

article/2025/9/22 13:51:08

转载@

        对于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.

watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBATWluZ2dlUWluZ2NodW4=,size_20,color_FFFFFF,t_70,g_se,x_16

        Java SE所有版本如下:

 Java SE版本          JDK版本           发布时间         开发代号   最终版本
Oak 1995-05-23Oak(橡树) 
Java 1.0JDK1.01996-01-23 1.0.2
1996-05-07
Java 1.1JDK1.11997-02-18 1.1.8_010
2002-10-09
J2SE 1.2JDK1.21998-12-04Playground(运动场1.2.2_017
2003-10-02
J2SE 1.3JDK1.32000-05-08Kestrel(美洲红隼)1.3.1_29
2010-10-12
J2SE 1.4JDK1.42002-02-13Merlin(灰背隼)1.4.2_42
2013-02-19
Java SE 5.0JDK1.52004-09-29Tiger(老虎)5.0u85
2015-04-15
Java SE 6JDK1.62006-12-12Mustang(野马)6u211
2018-10-16
Java SE 7JDK1.72011-07-11Dolphin(海豚)7u321
2021-10-19
Java SE 8JDK1.82014-03-18Spider(蜘蛛)8u311
2021-10-19
Java SE 9JDK1.92017-09-21 9.0.4
2018-01-16
Java SE 10JDK102018-03-20 

10.0.2

2018-07-17

Java SE 11JDK112018-09-25 11.0.13
2021-10-19
Java SE 12JDK122019-3-19 12.0.2
2019-07-16
Java SE 13JDK132019-09-19 13.0.2
2020-01-14
Java SE 14JDK142020-03-17 14.0.2
2020-07-14
Java SE 15JDK152020-09-15 15.0.2
2021-01-19
Java SE 16JDK162021-03-16 16.0.2
2021-07-20
Java SE 17JDK172021-09-14 17
2021-09-14

 Java官网如下:

Java 发行历史

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

当前支持的版本

版本初始发行当前版本版本信息生命的尽头
172021-09-1417
2021-09-14
打开 JDK 项目页面
JSR 392
2029-09-30
112018-09-2511.0.13
2021-10-19
发行说明
文档
认证配置
风险表
打开 JDK 项目页面
JSR 384
2026-09-30
82014-03-188u311
2021-10-19
发行说明
文档
认证配置
风险表
JSR 337
2030-12-31
72011-07-117u321
2021-10-19
发行说明
文档
认证配置
风险表
JSR 336
2022-07-19

未来版本

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

不再受支持的版本

版本初始发行最终版本版本信息
162021-03-1616.0.2
2021-07-20
发行说明
文档
认证配置
风险表
打开 JDK 项目页面
JSR 391
152020-09-1515.0.2
2021-01-19
发行说明
文档
认证配置
风险表
打开 JDK 项目页面
JSR 390
142020-03-1714.0.2
2020-07-14
发行说明
文档
认证配置
风险表
打开 JDK 项目页面
JSR 389
132019-09-1913.0.2
2020-01-14
发行说明
文档
认证配置
风险表
打开 JDK 项目页面
JSR 388
122019-03-1912.0.2
2019-07-16
发行说明
文档
认证配置
风险表
打开 JDK 项目页面
JSR 386
102018-03-2010.0.2
2018-07-17
发行说明
文档
认证配置
风险表
打开 JDK 项目页面
JSR 383
92017-09-219.0.4
2018-01-16
发行说明
文档
认证配置
风险表
JSR 379
62006-12-126u211
2018-10-16
发行说明
文档
认证配置
风险矩阵
JSR 270
52004-09-305.0u85
2015-04-15
发行说明
文档
认证配置
风险表
JSR 176
42002-02-131.4.2_42
2013-02-19
发行说明
风险矩阵
JSR 59
32000-05-081.3.1_29
2010-10-12
发行说明
风险矩阵
21998-12-041.2.2_017
2003-10-02
 
11997-02-181.1.8_010
2002-10-09
 
01995-05-231.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

watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBATWluZ2dlUWluZ2NodW4=,size_13,color_FFFFFF,t_70,g_se,x_16

    你已经看到, 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

resize,m_fixed,h_64,w_64 MinggeQingchun 150篇文章  18人订阅

pointRight.png

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


http://chatgpt.dhexx.cn/article/56ClcZUi.shtml

相关文章

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

初学Java时便一直疑惑Java版本号到底是如何命名的?时常在网上看到Java5、Java6、Java7、Java8 (到今天已经到了Java12了,2019.4.5) 这一类 “Java X” 的Java版本名称,同时又会看到诸如JDK1.5、JDK1.6这中 “JDK1.X” 的JDk叫法。一直以来都在…

Java各个版本区别

参考资料 一文彻底搞懂令人疑惑的Java和JDK的版本命名! Java–Java版本和JDK版本 1. Java SE、java EE、Java ME三个版本 1.1 Java SE(Java Platform,Standard Edition)Java标准版 Java SE 是做电脑上运行的软件。 Java se 以前…

Java各版本比较(Java SE、java EE、Java ME)

文章目录 1. 概述2. 版本比较2.1 Java SE、java EE、Java ME2.2 JDK、J2SE、Java SE2.3 JDK、JRE、Java SE API2.4 JDK、JRE、JRE、JIT2.5 Java ME、Java SE、Java EE、Java Card 来源 1. 概述 java是作为长时间流行的语言,在这过程中出现了很多版本,各…

Java--Java版本和JDK版本

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

【SpringBoot整合缓存】-----Redis缓存篇

本专栏将从基础开始,循序渐进,以实战为线索,逐步深入SpringBoot相关知识相关知识,打造完整的SpringBoot学习步骤,提升工程化编码能力和思维能力,写出高质量代码。希望大家都能够从中有所收获,也…

SpringBoot 开启Redis缓存

文章目录 Redis缓存主要步骤具体实践整体目录结构pom.xml添加依赖yml文件里配置Redis集群编写RedisConfig配置序列化及缓存配置,添加缓存注解编写业务Controller编写启动类 检验结果 之前不是说过Redis可以当作缓存用嘛 现在我们就配置一下SpringBoot使用Redis的缓存…

Windows下清理redis缓存

Windows下清理某个redis库的所有数据 1、找到redis的安装目录 2、找到redis-cli.exe,双击运行 3、登录redis:输入命令:auth 密码 4、登录成功:当前默认为数据库0 5、切换数据库:select 1/2/3(切换数据库为…

redis缓存穿透

ps:想只读有效信息,见红字 正常情况 当在高并发,高性能,降低数据库压力的情况下,首先会选择redis作为缓存机制,当有大量请求需要查询数据库时,为了降低数据库的压力,并提高请求查询性能&#…

linux下清理redis缓存

输入命令,连接到redis 服务端 redis-cli -h 127.0.0.1 -p 6379#不用切换到redis的bin下面, 是因为安装redis 时已经配置了系统变量验证登录密码, auth 你的redis密码 开始清理缓存,清理命令如下 指定redis片区: selec…

redis缓存命中率

登录redis服务器 输入 redis-cli 链接到redis之后,输入info 则会打印 通过计算hits和miss,我们可以得到缓存的命中率:111207/ (111207 50181) 68.9% ,一个缓存失效机制,和过期时间设计良好的系统,命中率…

命令行清除Redis缓存

一、打开命令行窗口 打开Redis安装目录下的《 redis-li.exe 》。 二、授权 在打开的命令行里直接操作会提示没有权限,需要先使用auth命令授权,使用方法如下。 auth ‘这里是Redis密码’ 三、清除缓存 清除缓存有两种方式:清除数据库缓存、清…

Redis缓存预热

概述 在秒杀开始前通常要进行将数据加载到缓存中,也叫缓存预热 demo Redis序列化配置,通常有两种方式,通过配置类进行序列化配置, Configuration public class RedisConfig {Autowiredprivate RedisConnectionFactory factory…

redis缓存失效问题

什么是缓存穿透?什么是缓存击穿?什么是缓存雪崩? 一个正常的访问流程: 1.缓存雪崩:redis缓存key同一时间大量失效,导致大量请求全部打到数据库,造成数据库挂掉。 如图: 缓存雪崩…

Redis缓存雪崩及解决办法

缓存雪崩 1.缓存雪崩是指在同- -时段大量的缓存key同时失效或者Redis服务宕机,导致大量请求到 达数据库,带来巨大压力。 2.解决方案: ◆给不同的Key的TTL添加随机值 ◆利用Redis集群提高服务的可用性 ◆给缓存业务添加降级限流策略 降级可做为系统的保底…

Redis缓存注解

本篇博客将详细讲解Cacheable,CachePut , CacheEvict使用,希望对大家有所帮助。 1、Cacheable 作用是主要针对方法配置,能够根据方法的请求参数对其结果进行缓存 参数解释examplevalue缓存的名称,在 spring 配置文件中定义,必…

Redis缓存的工作机制

Redis:缓存的工作机制 Redis缓存的工作机制缓存的特征Redis缓存处理请求Redis作为旁路缓存Redis中缓存的类型只读缓存读写缓存 参考文献 Redis缓存的工作机制 Redis具有高性能的数据存取特性,广泛的应用于缓存场景,在提升业务应用响应速度的同时&#xf…

Redis缓存击穿,缓存穿透,缓存雪崩,附解决方案

前言 在日常的项目中,缓存的使用场景是比较多的。缓存是分布式系统中的重要组件,主要解决在高并发、大数据场景下,热点数据访问的性能问题,提高性能的数据快速访问。本文以Redis作为缓存时,针对常见的缓存击穿、缓存穿…

Redis缓存应用场景解析

Redis的应用场景非常广泛。虽然Redis是一个key-value的内存数据库,但在实际场景中,Redis经常被作为缓存来使用,如面对数据高并发的读写、海量数据的读写等。 举个例子,A网站首页一天有100万人访问,其中有一个“积分商…

Redis缓存三大问题

缓存三大问题 ​ 我们都知道,Redis的Key都存在一个ttl(time to live)过期时间,Redis默认的是永不过期。Redis作为缓存,一方面可以提升速度,但也会带来三大常见的缓存问题:缓存穿透、缓存击穿和缓存雪崩。 ​ Redis作…

Redis缓存

Redis 一、Redis简介 一般为了提升性能,会在存储层和客户端之间添加一个缓存层,当客户端向后端发送请求的时候,会先去缓存层查,看看是否有相应的数据,如果有则直接返回,这样就减轻存储层的压力&#xff0c…