JAVA版本号的问题 Java版本号与JDK版本

article/2025/9/22 13:24:41

初学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-23Oak(橡树)
Java 1.0JDK1.01996-01-23 
Java 1.1JDK1.11997-02-18 
J2SE 1.2JDK1.21998-12-04Playground(运动场
J2SE 1.3JDK1.32000-05-08Kestrel(美洲红隼)
J2SE 1.4JDK1.42002-02-13Merlin(灰背隼)
Java SE 5.0JDK1.52004-09-29Tiger(老虎)
Java SE 6JDK1.62006-12-11Mustang(野马)
Java SE 7JDK1.72011-07-28Dolphin(海豚)
Java SE 8JDK1.82014-03-18Spider(蜘蛛)
Java SE 9JDK1.92017-09-21 
Java SE 10JDK102018-03-21 
Java SE 11JDK112018-09-25 
Java SE 12JDK122019-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

 


http://chatgpt.dhexx.cn/article/7V2EBfDK.shtml

相关文章

查看java/jdk版本

查看当前电脑的Java/JDK版本的方法 1.winR 打开运行窗口,输入 cmd 2.在控制台中输入java --version或者java -version,即可查看Java版本号 Java所有版本 版本号发布日期JDK Version 1.01996-01-23 Oak(橡树)JDK Version 1.11997-02-19JDK Version …

java的所有版本

图解 最开始 Java 是由 Sun Microsystems 公司于 1995 年 5 月推出的高级程序设计语言。 Oak也是一种精简的语言,程序非常小,适合在网络上传输。Sun公司首先推出了可以嵌入网页并且可以随同网页在网络上传输的Applet(Applet是一种将小程序嵌…

JDK版本区别

1. 泛型 ArrayList listnew ArrayList()------>ArrayList<Integer>listnew ArrayList<Integer>(); 2 自动装箱/拆箱 nt ilist.get(0).parseInt();-------->int ilist.get(0);原始类型与对应的包装类不用显式转换 3 for-each i0;i<a.length;i------------&…

Java版本和JDK版本

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

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

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

Java各个版本区别

参考资料 一文彻底搞懂令人疑惑的Java和JDK的版本命名&#xff01; Java–Java版本和JDK版本 1. Java SE、java EE、Java ME三个版本 1.1 Java SE&#xff08;Java Platform&#xff0c;Standard Edition&#xff09;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是作为长时间流行的语言&#xff0c;在这过程中出现了很多版本&#xff0c;各…

Java--Java版本和JDK版本

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

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

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

SpringBoot 开启Redis缓存

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

Windows下清理redis缓存

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

redis缓存穿透

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

linux下清理redis缓存

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

redis缓存命中率

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

命令行清除Redis缓存

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

Redis缓存预热

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

redis缓存失效问题

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

Redis缓存雪崩及解决办法

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

Redis缓存注解

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

Redis缓存的工作机制

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