Java 历史

2025年4月28日 | 阅读 11 分钟

Java 的历史确实引人入胜。Java 最初是为交互式电视设计的,它的旅程始于 Sun Microsystems 内部的一个名为 Green Team 的团队,由 James Gosling 领导。他们的目标是为机顶盒和电视等数字设备创建一个编程语言。然而,Java 的功能超出了当时数字电缆电视行业的需求。取而代之的是,它在互联网编程中找到了自己的定位,提供了一种超前于时代的解决方案。

Java 的原则,包括简洁性、健壮性、可移植性、平台独立性、安全性、高性能、多线程、架构中立性、面向对象、解释性和动态性,为其发展奠定了基础。这些原则确保了 Java 不仅功能多样,而且能够适应各种应用。

James Gosling,常被称为 Java 之父,在 20 世纪 90 年代初领导了该项目。Gosling 和他的团队(被称为 Green Team)一起努力完善和开发 Java,使其成为我们今天所知的语言。他们的努力最终在 1995 年发布了 Java。Netscape 后来将 Java 技术集成到其浏览器中,进一步推动了其普及,并巩固了其作为编程语言领域关键参与者的地位。从其在数字电视的最初起源,到广泛应用于互联网及其他领域,Java 一直在不断发展,在保持其核心原则的同时,适应不断变化的技​​术格局的需求。

James Gosling - founder of java

目前,Java 被广泛应用于互联网编程、移动设备、游戏、电子商务解决方案等领域。以下是描述 Java 历史的一些重要要点。

1) James Gosling、Mike Sheridan 和 **Patrick Naughton** 于 1991 年 6 月启动了 Java 语言项目。这个小型团队由 Sun 的工程师组成,被称为 **Green Team**。

2) 最初,它被设计用于电子设备中的小型、**嵌入式系统**,例如机顶盒。

3) 首先,James Gosling 将其命名为 **"Greentalk"**,文件扩展名为 .gt。

4) 之后,它被称为 **Oak**,并作为 Green 项目的一部分进行开发。

为什么 Java 被命名为 "Oak"?

Java History from Oak to Java

5) **为什么是 Oak?** Oak 是力量的象征,被选为许多国家(如美国、法国、德国、罗马尼亚等)的国树。

6) 1995 年,Oak 被重命名为 **"Java"**,因为它已经被 Oak Technologies 注册为商标。

为什么 Java 编程被命名为 "Java"?

7) 他们为什么要选择 Java 这个名字给 Java 语言?团队聚集在一起选择一个新名字。建议的词有 "dynamic"(动态)、"revolutionary"(革命性的)、"Silk"(丝绸)、"jolt"(震动)、"DNA" 等。他们想要一些能反映技术本质的东西:革命性的、动态的、活泼的、酷的、独特的、易于拼写且朗朗上口的。

根据 James Gosling 的说法,“Java 是与 **Silk** 一起被选中的首选之一”。由于 Java 是如此独特,大多数团队成员都比其他名字更喜欢 Java。

8) Java 是印度尼西亚的一个岛屿,那里生产了第一批咖啡(称为爪哇咖啡)。它是一种浓缩咖啡豆。James Gosling 在办公室附近喝咖啡时选择了 Java 这个名字。

9) 请注意,Java 只是一个名字,不是缩写。

10) 最初由 James Gosling 在 **Sun Microsystems**(现为 Oracle 公司的子公司)开发,并于 1995 年发布。

11) 1995 年,《时代》杂志将 **Java 评为 1995 年十大最佳产品之一**。

12) JDK 1.0 于 1996 年 1 月 23 日发布。在 Java 的首次发布后,该语言添加了许多附加功能。现在,Java 已被用于 Windows 应用程序、Web 应用程序、企业应用程序、移动应用程序、卡片等。每个新版本都为 Java 添加了新功能。


Java 版本历史

至今已发布了许多 Java 版本。Java 目前的稳定版本是 Java 22。

JDK Alpha 和 Beta (1995)

JDK Alpha 和 Beta 版本标志着 Java 开发的初始阶段。这些早期版本为后续版本奠定了基础,展示了 Java 作为一种通用且平台无关的编程语言的潜力。尽管与后续版本相比,这些版本在功能和稳定性方面有所欠缺,但它们展示了 Java 开发团队在创建适用于各种应用的语言方面的创新方法。

JDK 1.0 (1996 年 1 月 23 日)

JDK 1.0 于 1996 年 1 月 23 日发布,标志着 Java 正式向世界亮相。它包含了 Java 虚拟机 (JVM)、支持 Web 浏览器的 Java Applet 以及必要的类库等核心功能。JDK 1.0 为 Java 的广泛采用奠定了基础,展示了其在不同平台上的可移植性和通用性。尽管处于早期阶段,JDK 1.0 为 Java 的快速发展奠定了基础,并确立了其作为一种健壮可靠的编程语言的声誉。

JDK 1.1 (1997 年 2 月 19 日)

JDK 1.1 于 1997 年 2 月 19 日发布,为 Java 平台带来了重大的增强和改进。它包含了一些新功能,如 JDBC(Java 数据库连接)、RMI(远程方法调用)、JavaBeans 和 AWT(抽象窗口工具包)事件模型。JDK 1.1 扩展了 Java 在企业和桌面应用程序方面的功能,进一步巩固了其作为领先编程语言的地位。此版本的发展帮助 Java 在各行业获得了广泛采用,并为 Java 生态系统的未来创新奠定了基础。

J2SE 1.2 (1998 年 12 月 8 日)

Java 2 Platform, Standard Edition (J2SE) 1.2 于 1998 年 12 月 8 日发布,是 Java 发展的一个重要里程碑。它引入了重大增强,包括 Swing GUI 工具包、Collections Framework 和 Java Naming and Directory Interface (JNDI)。J2SE 1.2 进一步增强了 Java 开发健壮且可扩展应用程序(尤其是在企业领域)的能力。其全面的功能集和改进的性能为 Java 在全球开发者和组织中的日益普及做出了贡献。

J2SE 1.3 (2000 年 5 月 8 日)

J2SE 1.3 于 2000 年 5 月 8 日发布,为 Java 平台带来了显著的改进和优化。它引入了 HotSpot JVM、Java Naming and Directory Interface (JNDI) 增强功能以及 Java Sound API 等功能。J2SE 1.3 侧重于提高性能、可靠性和安全性,进一步增强了 Java 在任务关键型应用程序方面的适用性。此版本的发展促使 Java 在各行业继续占据主导地位,巩固了其作为一种通用且健壮的编程语言的声誉。

J2SE 1.4 (2002 年 2 月 6 日)

Java 2 Platform, Standard Edition (J2SE) 1.4 于 2002 年 2 月 6 日发布,为 Java 平台引入了重大的增强和新功能。它包括 assert 语句、NIO(New I/O)包、正则表达式和 XML 处理增强等改进。J2SE 1.4 侧重于提高开发人员的生产力、性能和安全性,使得开发和部署 Java 应用程序更加容易。此版本的发展进一步巩固了 Java 在企业和桌面开发领域作为领先编程语言的地位。

J2SE 5.0 (2004 年 9 月 30 日)

以前称为 J2SE 1.5,Java 2 Platform, Standard Edition (J2SE) 5.0 于 2004 年 9 月 30 日发布,引入了几项开创性的功能和增强。它包括泛型、元数据注解、枚举类型、增强 for 循环以及 Java 并发工具等功能。J2SE 5.0 侧重于提高开发人员的生产力、代码可读性和性能,使开发人员能够编写更简洁高效的代码。此版本中的创新在使 Java 语言现代化和巩固其在快速发展的技术格局中的相关性方面发挥了重要作用。

Java SE 6 (2006 年 12 月 11 日)

Java SE 6 于 2006 年 12 月 11 日发布,为 Java 平台引入了重大的增强和新功能。它包括通过引入 Java Compiler API 来支持脚本,以及包含 JavaDB 数据库等改进。Java SE 6 侧重于提高开发人员的生产力、性能和安全性,使得开发和部署 Java 应用程序更加容易。此版本的发展进一步加强了 Java 作为企业和桌面开发领域领先编程语言的地位,推动了其在各行业的应用。

Java SE 7 (2011 年 7 月 28 日)

Java SE 7 于 2011 年 7 月 28 日发布,为 Java 平台引入了几项新功能和增强。它包括 try-with-resources 语句、用于类型推断的菱形运算符以及用于并行处理的 fork/join 框架等改进。Java SE 7 侧重于提高开发人员的生产力、代码可读性和性能,使开发和维护 Java 应用程序更加容易。此版本的发展为 Java 在快速变化的技术格局中保持相关性和普及率做出了贡献,进一步巩固了其作为领先编程语言的地位。

Java SE 8 (2014 年 3 月 18 日)

Java SE 8 于 2014 年 3 月 18 日发布,为 Java 平台引入了重大的新功能和增强。它包括备受期待的 lambda 表达式、用于集合函数式操作的 Stream API、用于日期和时间操作的 java.time 包以及用于异步编程的 CompletableFuture 类。Java SE 8 侧重于提高开发人员的生产力、代码可读性和性能,使编写简洁高效的代码更加容易。此版本的发展将 Java 推入了函数式编程时代,使开发人员能够利用现代编程范例,同时保持 Java 的稳定性和可靠性。

自 Java SE 8 发布以来,Oracle 公司一直遵循一个模式:偶数版本在三月发布,奇数版本在九月发布。

Java SE 9 (2017 年 9 月 21 日)

Java SE 9 于 2017 年 9 月发布,引入了几项旨在提高开发人员生产力、性能和可维护性的重大功能和增强。此版本引入了 Java 平台模块系统 (JPMS),它提供了一种标准化方式来模块化和打包 Java 应用程序和库。Java SE 9 还引入了用于交互式 Java 编程的 jshell 工具、垃圾回收器的改进以及用于响应式编程和 HTTP/2 的新 API。

Java SE 10 (2018 年 3 月 20 日)

Java SE 10 于 2018 年 3 月发布,侧重于提高开发人员的生产力、性能和可维护性。此版本引入了局部变量类型推断,允许开发人员在不显式指定类型的情况下声明局部变量。Java SE 10 还包括对垃圾回收器的改进以及对基于 Java 的即时 (JIT) 编译器 Graal 的引入。此外,Java SE 10 弃用了 Java EE 和 CORBA 模块,预示着 Java 平台朝着更模块化、更轻量级的方向发展。

Java SE 11 (2018 年 9 月)

Java SE 11 于 2018 年 9 月发布,是 Oracle 引入新的发布节奏后的第一个长期支持 (LTS) 版本,标志着 Java 演进的一个重要里程碑。此版本引入了几项新功能和增强,包括用于发起 HTTP 请求的 HttpClient API、单源文件执行模式的推出,以及对 Java Flight Recorder 和 Java Mission Control 工具的更新。Java SE 11 还删除了几项已弃用的功能和 API,为未来的创新和发展铺平了道路。

Java SE 12 (2019 年 3 月)

Java SE 12 于 2019 年 3 月发布,侧重于提高开发人员的生产力、性能和可维护性。此版本引入了几项新功能和增强,包括 switch 表达式、对垃圾回收器的增强以及对 Shenandoah 垃圾回收器的改进。Java SE 12 还包括对 String 类的增强,引入了用于操作和格式化字符串的新方法。此外,Java SE 12 弃用了几项功能和 API,鼓励开发人员迁移到更新的替代方案。

Java SE 13 (2019 年 9 月)

Java SE 13 于 2019 年 9 月发布,引入了几项旨在提高开发人员生产力、性能和可维护性的一些新功能和增强。此版本引入了文本块,使开发人员能够更轻松地编写多行字符串文字。Java SE 13 还包括对 switch 语句的增强、对垃圾回收器的改进以及对 Z Garbage Collector (ZGC) 的更新。此外,Java SE 13 弃用了几项功能和 API,鼓励开发人员迁移到更新的替代方案。

Java SE 14 (2020 年 3 月)

Java SE 14 于 2020 年 3 月发布,引入了几项旨在提高开发人员生产力、性能和可维护性的一些新功能和增强。此版本引入了记录 (records),一种新的类类型,可以简化不可变数据对象的创建。Java SE 14 还包括对 switch 语句的增强、对垃圾回收器的改进以及对 Z Garbage Collector (ZGC) 的更新。此外,Java SE 14 弃用了几项功能和 API,鼓励开发人员迁移到更新的替代方案。

Java SE 15 (2020 年 9 月)

Java SE 15 于 2020 年 9 月发布,引入了几项旨在提高开发人员生产力、性能和可维护性的一些新功能和增强。此版本引入了密封类和接口,允许开发人员限制哪些类可以扩展或实现它们。Java SE 15 还包括对 Java SE 14 中引入的 instanceof 模式匹配功能的增强。此外,Java SE 15 弃用了几项功能和 API,鼓励开发人员迁移到更新的替代方案。

Java SE 16 (2021 年 3 月)

Java SE 16 于 2021 年 3 月发布,引入了几项旨在提高开发人员生产力、性能和可维护性的一些新功能和增强。此版本引入了记录 (records),一种新的类类型,可以简化不可变数据对象的创建。Java SE 16 还包括对垃圾回收器的增强、对 Z Garbage Collector (ZGC) 的更新以及对打包工具的改进。此外,Java SE 16 弃用了几项功能和 API,鼓励开发人员迁移到更新的替代方案。

Java SE 17 (2021 年 9 月)

Java SE 17 于 2021 年 9 月发布,是 Java 平台最新的版本。此版本引入了几项旨在提高开发人员生产力、性能和可维护性的一些新功能和增强。Java SE 17 的一些关键功能包括密封类和接口、switch 语句的模式匹配,以及 Foreign Function and Memory API (Incubator) 的引入。此外,Java SE 17 还包括对垃圾回收器的更新、对打包工具的改进以及对 Java 语言和 API 的增强。

Java SE 18 (2022 年 3 月)

Java SE 18 于 2022 年 3 月发布,为 Java 平台引入了几项新功能和增强,包括 switch 表达式的模式匹配、对 Foreign Function and Memory API (Incubator) 的改进,以及各种语言和 API 的增强。此版本还包括对垃圾回收器的更新、对打包工具的改进以及性能增强。

Java SE 19 (2022 年 9 月)

Java 19 于 2022 年 9 月 20 日发布,引入了虚拟线程以实现轻量级并发,优化了性能。此外,经过孵化轮次后的 Foreign Function & Memory API 处于预览阶段,有望提供增强的功能。

Java SE 20 (2023 年 3 月)

Java 20 于 2023 年 3 月 21 日发布,引入了作用域值 (Scoped Values - Incubator),提供了一种替代线程局部变量的方法。它还展示了记录模式 (Record Patterns - Second Preview),改进了模式匹配,以及 switch 的模式匹配 (Pattern Matching for switch - Fourth Preview),简化了 switch 语句。此外,还引入了虚拟线程 (Virtual Threads - Second Preview),通过轻量级线程管理增强了并发性。这些功能旨在简化开发并提高 Java 编程的可读性。

Java SE 21 (2023 年 9 月)

Java 21,一个长期支持版本,于 2023 年 9 月 19 日发布。它带来了字符串模板 (String Templates - Preview),增强了字符串插值,序列化集合 (Sequenced Collections) 以改进有序集合,以及分代 ZGC (Generational ZGC) 以增强垃圾回收。此外,switch 的模式匹配简化了代码,从而提高了 Java 开发的长期稳定性和生产力。

Java SE 22 (2024 年 3 月)

Java 22 于 2024 年 3 月 19 日发布,引入了几项重要的功能。结构化并发 (Structured Concurrency) 增强了并发任务的控制。作用域值 (Scoped Values) 取代了线程局部变量,克服了它们的局限性。字符串模板 (String Templates - Second Preview) 提供了改进的字符串格式化。此外,向量 API (Vector API - Seventh Incubator) 引入了一种高效向量计算的机制,增强了 Java 在各种计算任务中的能力。

Java 版本更多详情。


Java 历史选择题

1. 谁被誉为 Java 编程语言之父?

  1. James Gosling
  2. Bjarne Stroustrup
  3. Dennis Ritchie
  4. Guido van Rossum
 

答案:A)

解释: James Gosling 被认为是 Java 编程语言的创造者。


2. Java 是在哪一年公开发布的?

  1. 1989
  2. 1991
  3. 1995
  4. 2000
 

答案:C)

解释: Java 于 1995 年由 Sun Microsystems 公开发布。


3. 哪家公司最初开发了 Java?

  1. 微软
  2. IBM
  3. Sun Microsystems
  4. Oracle
 

答案:C)

解释: Java 最初由 Sun Microsystems 开发,后来被 Oracle 收购。


4. 下列哪一项是 Java 最初的名称?

  1. Oak
  2. 绿色
  3. Maple
  4. Pine
 

答案:A)

解释: Java 最初由 James Gosling 命名为 Oak。


5. Java 创建的主要动机是什么?

  1. 开发 Web 应用程序。
  2. 创建一种平台无关的语言。
  3. 取代 C++。
  4. 开发移动应用程序。
 

答案:B)

解释: Java 的主要目标是平台无关和可移植。


下一个主题Java 的特性