Java 历史是怎么样的?

文章导读
Previous Quiz Next Java 的历史 Java 编程语言最初由 Sun Microsystems 开发,由 James Gosling 发起,并于 1995 年作为 Sun Microsystems 的 Java 平台(Java 1.0 [J2SE]
📋 目录
  1. Java 的历史
  2. Java 命名历史
  3. Java 版本历史
A A

Java - 历史



Previous
Quiz
Next

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 的团队不得不 brainstorm 另一个语言名称。

最终定为 Java

团队提出了多个名称,如 DNA、Silk、Ruby 和 Java。团队最终选定了 Java。James Gosling 根据一种浓缩咖啡豆的类型提出了 Java 这个名称。Java 是印度尼西亚的一个岛屿,那里发现了名为 Java coffee 的新型咖啡。据 James Gosling 称,Java 和 Silk 都是首选名称之一。最终选择了 Java,因为它非常独特,并代表了动态、革命性和有趣的本质。

Sun 于 1995 年发布了第一个公开实现版本 Java 1.0。它承诺 Write Once, Run Anywhere(WORA),在流行平台上提供免费运行时。

2006 年 11 月 13 日,Sun 以 GNU General Public License (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 23 Jan 1996 稳定的变体 JDK 1.0.2 被称为 JDK 1
3 JDK 1.1 19 Feb 1997 此版本添加了主要特性,如 JavaBeans、RMI、JDBC、内嵌类。
4 JDK 1.2 8 Dec 1998 向 Java 引入了 Swing、JIT Compiler、Java Modules、Collections,此版本大获成功。
5 JDK 1.3 8 May 2000 添加了 HotSpot JVM、JNDI、JPDA、JavaSound 以及对 Synthetic proxy classes 的支持。
6 JDK 1.4 6 Feb 2002 添加了用于创建/读取 JPEG/PNG 图像的 Image I/O API。集成的 XML 解析器和 XSLT 处理器 (JAXP) 以及 Preferences API 是其他重要更新。
7 JDK 1.5 或 J2SE 5 30 Sep 2004 向语言添加了各种新特性,如 foreach、var-args、generics 等。
8 JAVA SE 6 11 Dec 2006 放弃了 1. 编号,转为 SE,并对 JAXB 2.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 expressions、streams、default methods、新的 date-time APIs。
11 JAVA SE 9 21 Sep 2017 引入了模块系统,可应用于 JVM 平台。
12 JAVA SE 10 20 Mar 2018 添加了 Unicode language-tag extensions。引入了根证书、threadlocal handshakes、对替代内存设备上的堆分配支持等。
13 JAVA SE 11 5 Sep 2018 添加了动态 class-file constants、Epsilon(无操作垃圾回收器)、lambda 参数中的 local-variable 支持、低开销堆剖析支持。
14 JAVA SE 12 19 Mar 2019 添加了实验性 Garbage Collector、Shenandoah(低暂停时间垃圾回收器)、Microbenchmark Suite、JVM Constants API。
15 JAVA SE 13 17 Sep 2019 添加了特性 - Text Blocks(多行字符串)、增强的 Thread-local handshakes。
16 JAVA SE 14 17 Mar 2020 添加了特性 - Records(用于建模的新类类型)、Pattern Matching for instanceof、直观的 NullPointerException 处理。
17 JAVA SE 15 15 Sep 2020 添加了特性 - Sealed Classes、Hidden Classes、Foreign Function and Memory API(孵化器)。
18 JAVA SE 16 16 Mar 2021 作为预览添加了特性 - Records、Pattern Matching for switch、Unix Domain Socket Channel(孵化器)等。
19 JAVA SE 17 14 Sep 2021 作为最终版添加了特性 - Sealed Classes、Pattern Matching for instanceof、默认强封装 JDK 内部、新 macOS 渲染管道等。
20 JAVA SE 18 22 Mar 2022 添加了特性 - 默认 UTF-8、Java API 文档中的代码片段、Vector API(第三孵化器)、Foreign Function、Memory API(第二孵化器)等。
21 JAVA SE 19 20 Sep 2022 添加了特性 - Record pattern、Vector API(第四孵化器)、Structured Concurrency(孵化器)等。
22 JAVA SE 20 21 Mar 2023 添加了特性 - Scoped Values(孵化器)、Record Patterns(第二次预览)、Pattern Matching for switch(第四次预览)、Foreign Function & Memory API(第二次预览)等。
22 JAVA SE 21 19 Sep 2023 添加了特性 - String Templates(预览)、Sequenced Collections、Generational ZGC、Record Patterns、Pattern Matching for switch 等。
23 Java SE 22 19 Mar 2024 添加了特性 - G1 垃圾回收器的 Region Pinning、foreign functions and memory APIs、多文件源代码程序支持、string templates、vector apis(第七孵化器)、unnamed variables、patterns、stream gatherers(首次预览)等。
24 Java SE 23 17 Sep 2024 添加了特性 - patterns 中的 Primitive types、class file APIs、vector APIs(第八孵化器)、stream gatherers(第二次预览)、ZDC、默认 generation mode 等。