Java 教程

Java 控制语句

面向对象编程

Java 内置类

Java 文件处理

Java 错误和异常

Java 多线程

Java 同步

Java 网络

Java 集合

Java 接口

Java 数据结构

Java 集合算法

高级 Java

Java 杂项

Java API 和框架

Java 类参考

Java 有用资源

Java - 历史



Java 历史

Java 编程语言最初由 Sun Microsystems 开发,由 James Gosling 发起,并于 1995 年作为 Sun Microsystems Java 平台(Java 1.0 [J2SE])的核心组件发布。即使是 Java 的命名历史也非常有趣。它经历了许多名称。

Java 名称历史

GreenTalk

James Gosling 领导着一个名为“Green”的团队。该团队的目标是创建一个新的项目。最初,C++ 是开发该项目的最初选择。James Gosling 希望增强 C++ 以实现目标,但由于内存使用量过高,该想法被否决,团队开始使用一种新的语言,最初命名为 GreenTalk。使用的文件扩展名为 .gt。后来,这种语言被称为 Oak,最终称为 Java。

Oak

James Gosling 将语言重命名为 Oak。他的办公室前有一棵橡树。James Gosling 使用 Oak 作为名称,因为它代表团结,橡树是美国、法国、罗马尼亚等多个国家的国树。但 Oak Technologies 已经将 Oak 作为商标,James 的团队不得不为该语言想出一个其他的名称。

最终确定 Java

团队提出了多个名称,如 DNA、Silk、Ruby 和 Java。Java 最终被团队确定。James Gosling 基于一种浓缩咖啡豆的类型提出了 Java 这个名称。爪哇岛是印度尼西亚的一个岛屿,在那里发现了被称为爪哇咖啡的新咖啡。根据 James Gosling 的说法,Java 与 Silk 一样是首选名称之一。最终选择了 Java,因为它非常独特,体现了动态、革命性和趣味性。

Sun 于 1995 年发布了第一个公开实现版本 Java 1.0。它承诺一次编写,随处运行 (WORA),在流行平台上提供免费的运行时环境。

2006 年 11 月 13 日,Sun 在 GNU 通用公共许可证 (GPL) 的条款下,将大部分 Java 作为免费和开源软件发布。

2007 年 5 月 8 日,Sun 完成了这一过程,使所有 Java 的核心代码都成为免费和开源的,除了 Sun 未持有版权的一小部分代码。

Java Standard Edition 的最新版本是 Java SE 21。随着 Java 的发展及其广泛的流行,构建了多种配置以适应各种类型的平台。例如:用于企业应用程序的 J2EE,用于移动应用程序的 J2ME。

Java 版本历史

在近 30 年的时间里,Java 经历了许多小版本和大版本。以下是迄今为止 Java 版本的简要说明。

序号 版本 日期 描述
1 JDK Beta 1995 初始草稿版本
2 JDK 1.0 1996 年 1 月 23 日 一个稳定的变体 JDK 1.0.2 被称为 JDK 1
3 JDK 1.1 1997 年 2 月 19 日 此版本中添加了主要功能,如JavaBeansRMIJDBC内部类
4 JDK 1.2 1998 年 12 月 8 日 SwingJIT 编译器、Java 模块、集合 被引入到 Java 中,并且此版本取得了巨大的成功。
5 JDK 1.3 2000 年 5 月 8 日 添加了 HotSpot JVM、JNDI、JPDA、JavaSound 和对合成代理类的支持。
6 JDK 1.4 2002 年 2 月 6 日 添加了 Image I/O API 以创建/读取 JPEG/PNG 图像。集成的XML 解析器 和 XSLT 处理器 (JAXP) 以及 Preferences API 是其他重要的更新。
7 JDK 1.5 或 J2SE 5 2004 年 9 月 30 日 向语言添加了各种新特性,例如 foreach、var-args、泛型等。
8 JAVA SE 6 2006 年 12 月 11 日

1. 去掉了对 JRockit 的支持,并升级到 JAXB 2.0,添加了对 JSR 269 和 JDBC 4.0 的支持。
9 JAVA SE 7 2011年7月7日 为 JVM 添加了对动态语言的支持。其他增强功能包括 switch case 中的字符串、压缩的 64 位指针等。
10 JAVA SE 8 2014年3月18日 添加了对函数式编程的支持。引入了Lambda 表达式默认方法、新的日期时间 API
11 JAVA SE 9 2017年9月21日 引入了可应用于 JVM 平台的模块系统
12 JAVA SE 10 2018年3月20日 添加了 Unicode 语言标签扩展。引入了根证书、线程本地握手、对在备用内存设备上进行堆分配的支持等。
13 JAVA SE 11 2018年9月5日 添加了动态类文件常量、Epsilon(一个无操作垃圾收集器)、Lambda 参数中的局部变量支持、低开销堆分析支持。
14 JAVA SE 12 2019年3月19日 添加了实验性垃圾收集器 Shenandoah(一个低暂停时间垃圾收集器)、微基准测试套件、JVM 常量 API。
15 JAVA SE 13 2019年9月17日 添加了功能 - 文本块(多行字符串)、增强的线程本地握手。
16 JAVA SE 14 2020年3月17日 添加了功能 - 记录,一种用于建模的新类类型,instanceof 的模式匹配,直观的空指针异常处理
17 JAVA SE 15 2020年9月15日 添加了功能 - 密封类隐藏类、外部函数和内存 API(孵化器)。
18 JAVA SE 16 2021年3月16日 添加了预览功能 - 记录、switch 的模式匹配、Unix 域套接字通道(孵化器)等。
19 JAVA SE 17 2021年9月14日 添加了最终功能 - 密封类、instanceof 的模式匹配、默认情况下对 JDK 内部进行强封装。新的 macOS 渲染管道等。
20 JAVA SE 18 2022年3月22日 添加了功能 - 默认使用 UTF-8、Java API 文档中的代码片段、向量 API(第三个孵化器)、外部函数、内存 API(第二个孵化器)等。
21 JAVA SE 19 2022年9月20日 添加了功能 - 记录模式、向量 API(第四个孵化器)、结构化并发(孵化器)等。
22 JAVA SE 20 2023年3月21日 添加了功能 - 作用域值(孵化器)、记录模式(第二个预览)、switch 的模式匹配(第四个预览)、外部函数和内存 API(第二个预览)等。
22 JAVA SE 21 2023年9月19日 添加了功能 - 字符串模板(预览)、顺序集合、分代 ZGC、记录模式、switch 的模式匹配等。
23 Java SE 22 2024年3月19日 添加了功能 - G1 垃圾回收器的区域固定、外部函数和内存 API、多文件源代码程序支持、字符串模板、向量 API(第七个孵化器)、未命名变量、模式、流收集器(第一个预览)等。
24 Java SE 23 2024年9月17日 添加了功能 - 模式中的基本类型、类文件 API、向量 API(第八个孵化器)、流收集器(第二个预览)、ZDC、默认情况下使用分代模式等。
广告