Java 简明教程
Java - History
History of Java
Java 编程语言最初由 Sun Microsystems 开发,由 James Gosling 发起,并于 1995 年作为 Sun Microsystems Java 平台(Java 1.0 [J2SE])的核心组件发布。Java 的命名历史非常有趣。它曾用过很多名字。
Java Name History
GreenTalk
James Gosling 领导了一个名为“绿色”的团队。这个团队的目标是创建可以的新项目。最初是开发该项目的初始选择。James Gosling 想增强 C 来实现这个目标,但由于内存使用量较高,该想法被否决,并且团队最初使用一种名为 GreenTalk 的新语言开始。使用的文件扩展名为 .gt。后来,这种语言被称为 Oak,最终成为了 Java。
Oak
James Gosling 将语言重命名为 Oak。他的办公室前面有一棵橡树。James Gosling 使用这个名字是因为 Oak 代表团结,而橡树是美国、法国、罗马尼亚等多个国家的国树。但 Oak 技术已经将 Oak 注册为商标,James 团队不得不为该语言集思广益想出另一个标题。
Finally Java
团队提出了多个名称,如 DNA、Silk、Ruby 和 Java。Java 最终由团队敲定。James Gosling 根据浓缩咖啡豆的类型提出了 Java 名称。爪哇是印度尼西亚的一个岛屿,在那里发现了被称为爪哇咖啡的新咖啡。根据 James Gosling 的说法,Java 是 Silk 的首选之一。最终选择 Java,因为它非常独特,代表了动态、革命性和有趣的说法。
Sun 于 1995 年发布了第一个公共实施版本 Java 1.0。它承诺*Write Once, Run Anywhere*(WORA),提供了在流行平台上免费运行时。
2006 年 11 月 13 日,Sun 根据 GNU 通用公共许可证 (GPL) 的条款发布了大部分 Java 作为自由和开放源代码软件。
2007 年 5 月 8 日,Sun 完成了该过程,使 Java 的所有核心代码成为自由和开源,除了 Sun 没有持有其版权的一小部分代码。
最新发布的 Java Standard Edition 是 Java SE 21。随着 Java 的进步及其广泛的普及,构建了多种配置以适应各种类型的平台。例如:用于企业应用程序的 J2EE,用于移动应用程序的 J2ME。
Java Versions History
在近 30 年的时间里,Java 已经发布了许多小版本和主要版本。以下是迄今为止 Java 版本的简要说明。
Sr.No. |
Version |
Date |
Description |
1 |
JDK Beta |
1995 |
Initial Draft version |
2 |
JDK 1.0 |
23 Jan 1996 |
稳定版本 JDK 1.0.2 被称为 JDK 1 |
3 |
JDK 1.1 |
19 Feb 1997 |
在此版本中添加了主要功能,如、、、。 |
4 |
JDK 1.2 |
8 Dec 1998 |
将、、Java 模块、、引入到 JAVA 中,并且此版本非常成功。 |
5 |
JDK 1.3 |
8 May 2000 |
添加了 HotSpot 、JNDI、JPDA、JavaSound 和对合成代理类的支持。 |
6 |
JDK 1.4 |
6 Feb 2002 |
添加了用于创建/读取 JPEG/PNG 图像的图像 I/O API。其他重要更新包括集成的和 XSLT 处理器 (JAXP) 和首选项 API。 |
7 |
JDK 1.5 或 J2SE 5 |
30 Sep 2004 |
各种新特性被添加到语言中,如 foreach、var-args、泛型等。 |
8 |
JAVA SE 6 |
11 Dec 2006 |
[style="arabic"]1. 取消了 SE 中的符号,对 JAXB2.0 进行了升级,增加了 JSR 269 支持和 JDBC 4.0 支持。 |
9 |
JAVA SE 7 |
7 Jul 2011 |
为 JVM 添加了对动态语言的支持。其他增强项包括 switch case 中的字符串、压缩的 64 位指针等。 |
10 |
JAVA SE 8 |
18 Mar 2014 |
添加了对泛型编程的支持。引入了 Lambda 表达式、流式处理、默认方法和新的日期时间 API。 |
11 |
JAVA SE 9 |
21 Sep 2017 |
引入可应用于 JVM 平台的模块系统。 |
12 |
JAVA SE 10 |
20 Mar 2018 |
添加了 Unicode 语言标记扩展。引入根证书、线程本地握手、对备用内存设备上堆分配的支持等。 |
13 |
JAVA SE 11 |
5 Sep 2018 |
增加了动态类文件常量、一个非操作垃圾收集器 Epsilon、lambda 参数中的局部变量支持、低开销堆分析支持。 |
14 |
JAVA SE 12 |
19 Mar 2019 |
增加了实验性垃圾回收器 Shenandoah:一种低暂停时间垃圾回收器、微基准套件、JVM 常量 API。 |
15 |
JAVA SE 13 |
17 Sep 2019 |
增加了文本块(多行字符串)、增强线程本地握手之类的特性。 |
16 |
JAVA SE 14 |
17 Mar 2020 |
增加的特性 – Records,用于造型的新类类型、instanceof 的模式匹配、直观的 NullPointerException 处理。 |
17 |
JAVA SE 15 |
15 Sep 2020 |
增加新的特性 - Sealed 类、隐藏类、外部函数和内存 API(孵化)。 |
18 |
JAVA SE 16 |
16 Mar 2021 |
以预览形式增加的特性 - Records、对于 switch 的模式匹配、Unix 域套接字通道(孵化)等。 |
19 |
JAVA SE 17 |
14 Sep 2021 |
以最终版本形式增加的特性 - Sealed 类、instanceof 的模式匹配、默认情况下强封装 JDK 内部。新的 macOS 渲染管道等。 |
20 |
JAVA SE 18 |
22 Mar 2022 |
增加的特性 - 默认情况下 UTF-8、Java API 文档中的代码片段、向量 API(第三次孵化)、外部函数、内存 API(第二次孵化)等。 |
21 |
JAVA SE 19 |
20 Sep 2022 |
增加的特性 - 记录模式、向量 API(第四次孵化)、结构化并发(孵化)等。 |
22 |
JAVA SE 20 |
21 Mar 2023 |
增加的特性 - 作用域化值(孵化)、记录模式(第二次预览)、switch 的模式匹配(第四次预览)、外部函数和内存 API(第二次预览)等。 |
22 |
JAVA SE 21 |
19 Sep 2023 |
增加的特性 - 字符串模板(预览)、序列集合、代际 ZGC、记录模式、switch 的模式匹配等。 |