01-发展史

nobility 发布于 2024-04-27 01-Java语言基础 2387 次阅读


发展史

Java 诞生的原因

1991 年,Sun(Stanford University Network,斯坦福大学校园网) 公司的一位叫做帕特里克·诺顿(Patrick Naughton)的工程师被自己开发的 C 和 C 语言编译器搞得焦头烂额,因为 API 特别难用,所以帕特里克·诺顿(Patrick Naughton)决定改用 NeXT,同时他也获得了为公司研究的一个名叫做 Stealth 计划的项目。Stealth 后来被改名为 Green。Green 计划是由詹姆斯·高斯林(James Gosling)带领 Sun 公司工程师小组,想要设计一种小型计算机语言,主要用途是在电视盒子这类设备上进行程序开发,由于这类设备的处理能力和内存都很有限,所以语言必须非常小而紧凑。另外,由于不同厂商会使用不同的 CPU,所以还需要具有平台无关性。

由于 Sun 公司的人都有 UNIX 的应用背景。因此,所开发的语言都是以 C++ 为基础,不过詹姆斯·高斯林(James Gosling)在专访中也谈到过:“毕竟,语言只是实现目标的工具,而不是目标本身”。

Java 的坎坷经历

1992 年,Green 计划发布了它的第一个产品 Star7,Star7 是面向一种类 PDA 的设备,由一个操作系统、一个编程语言(Java)、一个用户界面,一个新的硬件平台和三块芯片构成,一般情况下,这样的项目在 Sun 公司需要 75 个人做 3 年,而他们仅花费了 17 个月。项目完成后,在 Sun 公司内部做一次展示,许多参观者对这个项目留下了深刻的印象,尤其是 Sun 的二位领导人斯科特·麦克尼利(Scott McNealy)和比尔·乔伊(Bill Joy)。

虽然 Star7 得到 Sun 的二位领导人的关注,但是 Java 的前途未卜,该项目并未得到推广。然后 Green 计划被转到了 First Person 公司旗下,First Person 公司是一个 SUN 公司的全资子公司,所以 First Person 公司员工必须通过其他的方法,将他们的技术推向市场。后来,项目组竞标了一个“提供视频点播等新型服务的有线电视盒子“项目,提出了一个机顶盒平台的提议,但是有线电视业界觉得 First Person 平台给予用户的权限过多,因此竞标败给了 SGL 公司。之后又和 3DO 公司的另外一笔关于机顶盒的交易也没有成功。从 1993 年年初到 1994 年上半年,帕特里克·诺顿一直苦苦寻求技术买家,然而没有一个标准消费品电子公司对此感兴趣,因此 1994 年 First Person 公司解散。

同时,Internet 的万维网也日渐发展壮大,万维网主要就是将超文本页面转换到屏幕上的浏览器。1994 年大多数人都在使用 Mosaic,Mosaic 是 1993 年由伊利诺斯大学超级计算机中心推出的非商业化浏览器。因为 Internet 正在向高度交互的目标发展,而这一目标正是詹姆斯·高斯林想在有线电视中看到的,作为原型,帕特里克·诺顿为了炫耀 Java 语言超强能力,采用 Java 写了一个小型万维网浏览器,命名为 WebRunner,后改名 HotJava。这个浏览器可以在网页中执行内嵌 Java 代码,也就是 Java Applet。

1995 年 5 月 23 日 Sun World 大会上正是发布了 HotJava 浏览器和 Java Alpha 版,并且第一次提出了“Write Once,Run Anywhere”,就是“一次编写,到处运行”的口号,这引起了巨大轰动,Java 的地位也随之得到了肯定。

Java 名字的由来

1995 年,詹姆斯·高斯林把这种语言称为 Oak,这么起名的原因网传的说法是因为,他非常喜欢自己办公室外的橡胶树。但是 Sun 公司的人发现 Oak 是一种已经存在的编程语言的名字。所以开展了命名征集会,在会上,大家提出了很多名字并且进行投票,排名第一的是 Silk,虽然大家都很喜欢这个名字,但是遭到詹姆斯·高斯林的坚决反对,排名第二和第三的没通过律师这一关,只有排名得四的 Java 得到了所有人的认可和律师的通过。

Java 灵感来自于咖啡,”爪哇“是生产“第一杯咖啡“的岛屿名称,位于印度尼西亚。因为当时美国非常多的人喜欢喝咖啡。

Java 编年史

1996 年 01 月 23 日 JDK 1.0 发布

1996 年 01 月 23 日,Sun 发布了 JDK 1.0。Java 语言有了第一个正式版本的运行环境。但是此时的 Java 代码是纯解释运行,使用外挂即时编译器 (Just In Time,JIT),性能较差。

JDK 1.0 版本代表技术点有:

  • 世界上第一款商用 Java 虚拟机,名为“Sun Classic VM“,使用纯解释执行的 Java 虚拟机实现。
  • 引入 Java 小程序 Applet。
  • 引入 Java GUI 编程 AWT。

1997 年 02 月 18 日 JDK 1.1 发布

1997 年 02 月 18 日,Sun 发布了 JDK 1.1,Java 里很多最基础的技术点都在 JDK 1.1 中被提出来。

JDK 1.1 的代表技术点有:

  • 引入 Java 数据库连接技术(Java Database Connectivity,JDBC)。
  • 引入 Java 远程方法调用技术(Remote Method Invocation,RMI)。
  • 制定 JavaBeans 规范。
  • 制定 JAR 文件格式。
  • 引入 Java GUI 编程的事件处理模型。

JDK 1.1 语言上的新特性有:

  • 引入内部类(Inner Class)。
  • 引入反射(Reflction)。

1998 年 12 月 04 日 JDK 1.2 发布

1998 年 12 月 04 日,Sun 发布了 JDK 1.2。该版本第一次内置了即时编译器 (Just In Time,JIT)。

JDK 1.1 的代表技术点有:

  • 内置即时编译器(Just In Time,JIT)。
  • 将字符串常量做内存映射。
  • 升级 JDBC 到 2.0 API,引入可滚动结果集、BLOB、CLOB、批量更新和用户自定义类型。
  • 对打包的 Java 文件进行数字签名。
  • 控制授权访问系统资源的策略工具。
  • 更先进的 Java GUI 编程 Swing。
  • 在 Applet 中增加对声音的支持。
  • 引入平台对象请求代理体系结构“接口定义语言“(Interface Definition Language,Java IDL)。
  • 引入基于分布式事务处理的“企业级应用程序的组件“(Enterprise JavaBeans,EJB)
  • 引入 Java 运行插件(Java Plug-in)。

JDK 1.2 语言上的新特性有:

  • 引入 Collections 集合类库。
  • 对浮点类型做进去运算的关键字 strictfp。

1999 年 04 月 27 日 HotSpot 虚拟机发布

1999 年 04 月 27 日 HotSpot 虚拟机发布,HotSpot 最初是由一家名为 Longview Technologies 的小公司开发,由于 HotSpot 的优异表现,这家公司在 1997 年被 Sun 公司收购。HotSpot 虚拟机发布时是作为 JDK 1.2 的附加程序提供的,后来成为 JDK 1.3 以及之后所有版本 Sun JDK 的默认虚拟机,同时也是后来 OpenJDK 默认使用的虚拟机。Oracle 收购 Sun 之后,把原来 BEA JRockit 中的优秀特性融合到 HotSpot 中,到了 JDK 8 时,HotSpot 在这个过程里移除掉永久代,吸收了 JRockit 的 Java Mission Control 的监控工具等功能。

1999 年 06 月 Java 体系分为三个方向

1999 年 06 月,Sun 公司还把 Java 体系分为了 J2SE、J2ME、J2EE 三个方向,并发布了第二代 Java 平台,简称 Java2,官方也称 JDK 为 J2SDK。

  • Java2 平台的标准版(Java 2 Standard Edition,J2SE)。
  • Java2 平台的微型版(Java 2 Micro Edition,J2ME)。
  • Java2 平台的企业版(Java 2 Enterprise Edition,J2EE)。

Java 2 平台的发布,是 Java 发展过程中最重要的一个里程碑。标志着 Java 应用开始普及。

2000 年 05 月 08 日 JDK 1.3 发布

2000 年 05 月 08 日 Sun 发布 J2SE 1.3.0 版本,代号 Kestrel(美洲红隼)。

JDK 1.3 的代表技术点有:

  • 引入 Java 平台调试体系结构(Java Platform Debugger Architecture, JPDA)。
  • 引入 jar 文件索引。
  • 新加了 Java Sound 类库。
  • 引入新的 Timer API。
  • 提供了 Java 2D API。
  • 使用公用对象请求代理程序体系结构(Common Object Request Broker Architecture,CORBA)和 Internet 对象请求代理间通信协议(Internet Inter-ORB Protocol,IIOP)来实现远程方法调用技术(Remote Method Invocation,RMI) 的通信协议。
  • Java 命名和目录接口(Java Naming and Directory Interface,JNDI) 服务开始被作为一项平台级服务进行提供,之前是一项扩展服务。

JDK 1.3 做的性能提升请参照 Oracle 官网介绍提高程序执行速度(Improvements to Program Execution Speed)

2002 年 02 月 13 日 JDK 1.4 发布

2002 年 02 月 13 日 Sun 公司发布了 JSSE 1.4 版本,代号 Merlin(灰背隼)。

JDK 1.4 的代表技术点有:

  • 升级 JDBC 到 3.0 API。
  • 引入 Java 打印服务(Java Print Service API)。
  • 引入 Logging API。
  • 引入 Java Web Start。
  • 引入 Preferences API。
  • 引入链式异常处理。
  • 引入 Image I/O API。
  • 引入非阻塞 IO(New I/O,NIO)。
  • 引入对 XML 的处理。
  • 引入扩展样式表转换语言转换器(Extensible Stylesheet Language Transformations,XSLT)用于将 XML 转换为 HTML。
  • 支持正则表达式。
  • 支持 IPV6。

JDK 1.4 更多语言新特性请参照 Oracle 官网介绍语言新特性(New Language Features),JDK 1.4 做的性能提升请参照 Oracle 官网介绍性能提升( Performance improvements)

2004 年 09 月 30 日 JDK 1.5 发布

2004 年 09 月 30 日 Sun 发布 J2SE 5.0,代号 Tiger(老虎),J2SE 1.5 的发布成为了 Java 语言发展的又一个里程碑,为了表示该版本的重要性 J2SE 1.5 更名为 Java SE 5.0。

JDK 1.5 的代表技术点有:

  • 引入泛型(Generics)。
  • 引入增强 for 循环。
  • 引入自动装箱/拆箱机制(Autoboxing)。
  • 引入类型安全枚举(Typesafe Enums)。
  • 引入可变长参数(Varargs)。
  • 静态导入(Static Import)。
  • 引入注解(Annotations)。

JDK 1.5 更多语言新特性请参照 Oracle 官网介绍语言新特性(New Language Features)。JDK 1.5 做的性能提升请参照 Oracle 官网介绍性能提升( Performance improvements)

2006 年 11 月 13 日 Java 技术开源

2006 年 11 月 13 日 Sun 公司宣布,将 Java 技术作为免费开源软件对外发布,并陆续开放源代码。并且 Sun 公司成立了 OpenJDK 开源社区组织,OpenJDK 诞生。OpenJDK 是 Java SE 的开源实现,更多 OpenJDK 信息请参照 OpenJDK 开源社区官网

OpenJDK 的开源协议采用的是 GPL v2(GNU General Public License, version 2 ) 和 GPL v2 + ClassPath Exception(General Public License, version 2 with the Classpath Exception),关于 ClassPath Exception 协议的更详细解释请参照 GNU 开源协议官网。这个开源协议的好处是,基于 OpenJDK 开发的应用程序可以不受 GPL 的影响,且不用开源自己写的程序代码,还可以进行商业收费。只有对 OpenJDK 项目本身进行源代码二次开发,才需要开源。

OpenJDK 项目中只有在源代码文件中包含 Oracle designates this partictlar file as subject to the "CIasspath" exception as provided by Oracle in the LICENSE file that accompanied this code. 这句话,这个源代码文件才是 GPL v2 + ClassPath Exception 协议的。值得注意的是,直接使用 OpenJDK 不能保证你所有连接的 Java 类库都包含 ClassPath Exception,即使你使用 OpenJDK 开发的程序中只有一个连接的类库文件没有 ClassPath Exception,也等于你项目中没有使用 ClassPath Exception,所以可能会带来商业纠纷,所以使用 OpenJDK 开发商业软件时要注意连接的类库是否包含 ClassPath Exception。

不过也不必太过担心,因为 OpenJDK 中常用的核心类库源代码开头都包含了 ClassPath Exception,但是 Hotspot 虚拟机中源代码 GC.Java 文件并没有包含 ClassPath Exception。

2006 年 12 月 12 日 JDK 1.6 发布

2006 年 12 月 12 日 Sun 发布了 Java SE 6 版本,代号 Mutang(野马)。从这个版本开始没有后缀 .0,之前的 Java SE 5.0 中的 .0 也被抹除。并且将各个版本中的数字 2 取消。

  • Java 平台的标准版(Java Platform Standard Edition,Java SE)。
  • Java 平台的微型版(Java Platform Micro Edition,Java ME)。
  • Java 平台的企业版(Java Platform Enterprise Edition,Java EE)。

JDK 1.6 的代表技术点有:

  • 引入支持脚本引擎框架。
  • 引入 Java Compiler API。
  • 升级 JDBC 到 4.0 API。
  • 通用的 Annotations 注解支持。
  • 对锁和同步做了改进。
  • 垃圾收集机制做了改进。
  • 类加载机制做了改进。
  • 对 WebService 支持增强。
  • 对 UI 支持增强。

JDK 1.6 更多语言新特性和性能提升请参照 Oracle 官网介绍语言新特性(New Language Features)

2009 年 04 月 20 日 Oracle 收购 Sun

2009 年 04 月 20 日 Oracle 宣布以 74 亿美元收购 Sun 公司。Oracle 收购 Sun 公司后 OpenJDK 开源社区将由 Oracle 领导,Sun JDK 变成了 Oracle JDK,Oracle JDK 就是 Java SE 的闭源实现。Oracle JDK 现在的版本更新完全基于 Open JDK 实现,目前 Oracle JDK 为了加快新功能的引用,每 6 个月更新一次大版本,每 3 个月进行一次安全补丁的更新,目前每两年发布一个长期版本。

2010 年 04 月 02 日 Java 之父从 Oracle 离职

Java 创始人詹姆斯·高斯林 (James Gosling) 2010 年 04 月 09 日在博客中称,已经在 2010 年 04 月 02 日从 Oracle 退休,现在还没有在别的地方任职。

2011 年 07 月 11 日 JDK 1.7 发布

2011 年 07 月 11 日 Oracle 发布 Java SE 7 LTS 版本,代号 Dolphin(海豚)。Java SE 7 LTS (Long-Term-Support) 是长期支持版本,一直维护更新到 2022 年 7 月 19 日。

JDK 1.7 语言上的新特性有:

  • 二进制字面值,即 0B 开头表示二进制数字,0 开头表示八进制数字,0X 开头表示十六进指数字。
  • Switch 语句表达式可以使用 String 字符串。
  • 可以在 try 中声明多个资源、可以同时捕获多个异常并重新抛出异常。
  • 可以使用数字下划线。
  • 泛型推断。

JDK 1.7 更多语言新特性和性能提升请参照 Oracle 官网介绍语言新特性(New Language Features)

2014 年 03 月 18 日 JDK 1.8 发布

2014 年 03 月 18 日 Oracle 发布 Java SE 8 LTS 版本。Oracle 原先计划 2013 年发布的,但是由于安全性问题两次跳票。Java SE 8 LTS (Long-Term-Support) 也是长期支持版本,维护更新到 2026 年 11 月。从 JDK 8 开始,OrcaIe 启用 JDK 增强建议(JDK Enhancement Proposals,JEP)来定义和管理纳入新版 JDK 发布范围的功能特性。

JDK 1.8 语言上的新特性有:

  • Lambda 表达式。
  • 方法引用。
  • 接口默认实现。
  • 重复注解。
  • 类型注解。
  • 增强类型推断。
  • 方法参数反射。
  • 内置 Nashorn JavaScript 引擎。
  • 新的时间、日期 API。
  • 彻底移除 HotSpot 的永久代。

JDK 1.8 更多语言新特性和性能提升请参照 Oracle 官网介绍语言新特性(New Language Features)

2017 年 09 月 21 日 JDK 1.9 发布

2017 年 09 月 21 日 Oracle 发布 Java SE 9 版本。Oracle 原计划是在 2016 年发布的,但是在 2016 年开始,Oracle 就宣布 JDK 9 肯定要延期到 2017 年,后来又经过两次跳票,终于在 2017 年 09 月 21 日艰难面世。

后两次跳票的原因,是以 IBM 和 RedHat 为首的 13 家企业在 JCP 委员会上联手否决了 Oracle 提出的 Jigsaw 作为 Java 模块化规范进入 JDK 9 发布范围的提案。Java 模块化确实是刚需,不论是 JDK 自身,亦或是 Java 应用都需要做到模块化,这方面 IBM 本身就是各大 Java 发行厂商中做的最好的,IBM 不仅让自家的 JDK 实现了高度模块化,还带头成立了 OSGI 联盟,制定了 Java 框架层面模块化的实施标准,所以 IBM 才想把 OSGI 推到 Java 规范里去整个"名分",而不是被 Jigsaw 革掉性命。课似 Oracle 对此丝毫没有退让,不惜想 JCP 发公开信,直言说到,如果提案最后无法通过,那 Oracle 将摒弃 JSR 专家组,独立发展带 Jigsaw 的 Java 版本,Java 顿时面临如 Python 2 和 Python 3 那般分裂危机。最终经过多轮投票斗争而妥协,Java 没有分裂,JDK 总算带着 Jigsaw 模块化发布了。

JDK 1.9 发布后,Oracle 随之宣布 Java 将会以持续交付的形式更加冥界的研发结构向前推进,以后 JDK 将会在每年的 3 月和 9 月各发布一个大版本,6 个大版本会被划分出一个长期支持版 (Long-Term-Support,LTS) 。这么做目的就是为避免众多功能特性被集中捆绑在一个 JDK 版本上引发的交付风险。这次改革从根源上解决了跳票问题,但是也为 Java 的用户和发行商带来了巨大的压力,还没用就过时了。

JDK 1.9 语言上的新特性有:

  • 模块化系统。
  • 接口私有方法。
  • JShell 工具。

JDK 1.9 更多语言新特性和性能提升请参照 Oracle 官网介绍语言新特性(New Language Features

2018 年 03 月 05 日 Java EE 正式移交给开源组织

2017 年 08 月,Oracle 就决定将 Java EE 移交给开源组织,最后 Eclipse 基金会接手。2018 年 03 月 05 日,Oracle 才正式宣布将 Java EE 移交给开源组织 Eclipse 基金会,此时是 Java EE 8 版本。

由于 Oracle 不允许开源组织用 Java 的名号,于是 Eclipse 选出"Jakarta EE"和"Enterprise Profile"两个后续名字,"Jakarta EE"最终以 64.4% 的票数获胜,至此 Java EE 正式更名为 Jakarta EE

2018 年 03 月 20 日 JDK 1.10 发布

2018 年 03 月 20 日 Oracle 发布 Java SE 10 版本。从 2018 年开始,每年的 3 月和 9 月各发布一个最新的大版本(Latest Version),以更快的引入新特性,每 6 个大版本会被划分出一个长期支持版 (Long-Term-Support,LTS) 。

从 JDK 1.10 起,HotSpot 中友加入了一个全新的即使编译器,名为“Graal 编译器”。

JDK 1.10 更多语言新特性和性能提升请参照 Oracle 官网介绍语言新特性(New Language Features)

2018 年 03 月 27 日 Android 的 Java 侵权案最终判决

2018 年 03 月 27 日 Android 的 Java 侵权案有了最终判决,法庭裁定 Google 赔偿 Oracle 合计 88 亿美元,要知道 2009 年 Oracle 收购 Sun 也就花了 74 亿美元。

2018 年 09 月 25 日 JDK 1.11 发布

2018 年 09 月 25 日 Oracle 发布 Java SE 11 LTS 版本,Java SE 11 LTS (Long-Term-Support) 也是长期支持版本,维护更新到 2026 年 09 月 30 日。从 Java 11 开始,Oracle JDK 构建和 Oracle OpenJDK 构建基本相同。

Oracle 基于 OpenJDK 构建 Oracle OpenJDK,更新周期只有 6 个月,在这 6 个月更新期间内,Oracle OpenJDK 和 Oracle JDK 几乎没区别,6 个月后,原来版本的 Oracle OpenJDK 不在维护更新,Oracle 会重新构建新版本的 Oracle OpenJDK。所以 Oracle OpenJDK 可以理解伟 Oracle JDK 的试用版或者尝鲜版。

JDK 1.11 更多语言新特性和性能提升请参照 Oracle 官网介绍语言新特性(New Language Features)

2019 年 03 月 19 日 JDK 1.12 发布

2019 年 03 月 19 日 Oracle 发布 Java SE 12 版本。

Java SE 12 版本中最引人注目的特性无疑是由 Redhat 领导开发的 Shenandoah 垃圾收集器,其目标是与 Oracle 在 Java SE 11 版本中发布的 ZGC 几乎完全一致。Oracle 马上用实际行动地址了这个新收集器。

在 Java SE 11 发布时,Oracle 说尽可能保证 Oracle JDK 和 OpenJDK 的兼容和一致,转眼就在 Oracle JDK 12 中将 Shenandoah 的代码通过条件编译强行剔除掉,使其成为历史第一个进入 OpenJDK 发布清单,但是 Oracle JDK 中无法使用的功能。

JDK 1.12 更多语言新特性和性能提升请参照 Oracle 官网介绍语言新特性(New Language Features)

2019 年 04 月 16 日 JDK 商用收费

2019 年 04 月 16 日 Oracle 宣布 JDK 商用收费。Oracle 想通过之前基本免费的 JDK 产生的大量用户,然后从中间捞一笔,Oracle 宣布 Oracle JDK 商用收费,以提供性能优化、维护更新、漏洞补丁更新、客户问题解决等商业服务收费。在 Oracle 宣布对 Oracle JDK 商用全部收费后,各个厂商为了节约成本,都开始根据开源 OpenJDK 为自己的云服务构建自己的 JDK,并且也都模仿 Oracle 的商业收费模式。

之前的 OpenJDK 开源社区主要只有 Oracle 公司领导以及部分社区成员,大大影响了 JDK 的成长,自从 Oracle 宣布收费后,各大厂商,例如 IBM、RedHat、Azul、亚马逊、微软、阿里巴巴、腾讯、华为等企业,都参与到 OpenJDK 开源建设中来,把自己下游 JDK 发行版的一些优化补丁提供给 OpenJDK 开源社区,虽然说 JDK 版本眼花缭乱,但是 JDK 的成长发展,必须要大家一起努力,就像之前的 Linux 系统一样。

Oracle 发布的 Java SE 8(8 u 202) 及其之前的版本,都是免费商用的,Oracle 发布的 Java SE 8(8 u 211)及其之后的版本是商用收费的。

下面整理了一些厂商自己的 JDK 发行版:

2019 年 09 月 19 日 JDK 1.13 发布

2019 年 09 月 19 日 Oracle 发布 Java SE 13 版本。

JDK 1.13 更多语言新特性和性能提升请参照 Oracle 官网介绍语言新特性(New Language Features)

2020 年 03 月 17 日 JDK 1.14 发布

2020 年 03 月 17 日 Oracle 发布 Java SE 14 版本。

JDK 1.14 更多语言新特性和性能提升请参照 Oracle 官网介绍语言新特性(New Language Features)

2020 年 09 月 15 日 JDK 1.15 发布

2020 年 09 月 15 日 Oracle 发布 Java SE 15 版本。

JDK 1.15 更多语言新特性和性能提升请参照 Oracle 官网介绍语言新特性(New Language Features)

2021 年 03 月 16 日 JDK 1.16 发布

2021 年 03 月 16 日 Oracle 发布 Java SE 16 版本。

JDK 1.16 更多语言新特性和性能提升请参照 Oracle 官网介绍语言新特性(New Language Features)

2021 年 09 月 14 日 JDK 1.17 发布

2021 年 09 月 14 日 Oracle 发布 Java SE 17 LTS 版本,Java SE 17 是继 Java SE 11 之后,又一个长期支持版本,并且维护更新到 2029 年 09 月 30 日。

Oracle 宣布 Java SE 17 可以免费商用,但是时间截至到 2024 年 9 月,共计3年,遵循免费条款和条件(Oracle No-Fee Terms and Conditions,NFTC) 协议

此外 Oracle 启动了 LTS 长期版本设计,目前看是 3 年(以后是 2 年),在下一个 LTS 版本出现后,前一个 NFTC 许可的 LTS 会至少保持一年,LTS 最少 8 年,其中 3 年免费商用,5 年收费商用。在 Oracle 的 FAQ 中指出,Java SE 17 之后的版本都遵循 NFTC 协议,但是有时间期限,免费期过后会收费。

JDK 1.17 更多语言新特性和性能提升请参照 Oracle 官网介绍语言新特性(New Language Features)

2022 年 03 月 22 日 JDK 1.18 发布

2022 年 03 月 22 日 Oracle 发布 Java SE 18 版本。

JDK 1.18 更多语言新特性和性能提升请参照 Oracle 官网介绍语言新特性(New Language Features)

2022 年 09 月 20 日 JDK 1.19 发布

2022 年 09 月 20 日 Oracle 发布 Java SE 19 版本。

JDK 1.19 更多语言新特性和性能提升请参照 Oracle 官网介绍语言新特性(New Language Features)

2023 年 03 月 21 日 JDK 1.20 发布

2023 年 03 月 21 日 Oracle 发布 Java SE 20 版本。

JDK 1.20 更多语言新特性和性能提升请参照 Oracle 官网介绍语言新特性(New Language Features)。

2023 年 09 月 19 日 JDK 1.21 发布

2023 年 09 月 19 日 Oracle 发布 Java SE 21 版本,Java SE 21 是继 Java SE 17 之后,又一个长期支持版本,并且维护更新到 2028 年 09 月。

JDK 1.21 更多语言新特性和性能提升请参照 Oracle 官网介绍语言新特性(New Language Features)。

2024 年 03 月 19 日 JDK 1.22 发布

2024 年 03 月 19 日 Oracle 发布 Java SE 22 版本。

JDK 1.22 更多语言新特性和性能提升请参照 Oracle 官网介绍语言新特性(New Language Features)。

2024 年 09 月 17 日 JDK 1.23 发布

2024 年 09 月 17 日,Oracle 发布了 Java SE 23 版本。

JDK 1.23 更多语言新特性和性能提升请参照 Oracle 官网介绍语言新特性(New Language Features)。

2025 年 03 月 18 日 JDK 1.24 发布

2025 年 03 月 18 日,Oracle 发布了 Java SE 24 版本。

JDK 1.24 更多语言新特性和性能提升请参照 Oracle 官网介绍语言新特性(New Language Features)。

加油啊!即便没有转生到异世界,也要拿出真本事!!!\(`Δ’)/
最后更新于 2024-04-27