Java 的诞生与演进:一段改变世界的编程语言历史
作者: James Gosling (詹姆斯·高斯林)
一、 Java 技术平台的三大方向
Java 技术体系根据应用场景主要分为三个平台:
| 平台简称 | 全称 | 主要用途 | 命名历史变迁 |
|---|---|---|---|
| Java ME | Java Platform, Micro Edition | 移动终端/嵌入式设备开发 | JDK 6 之前称为 J2ME |
| Java SE | Java Platform, Standard Edition | 桌面级应用开发 | JDK 6 之前称为 J2SE |
| Java EE | Java Platform, Enterprise Edition | 企业级应用开发 | JDK 6 之前称为 J2EE JDK 10 之后更名为 Jakarta EE |
二、 JDK 发展里程碑:版本演进史
Java 的发展与其开发工具包 (JDK) 的版本紧密相连。让我们沿着时间线回顾那些关键的里程碑:
-
1991年4月: “Oak” 的萌芽
- 由 James Gosling 领导的 “绿色计划” (Green Project) 启动,旨在为消费电子产品(如交互式电视)开发一种新的编程语言。
- 这种新语言最初被命名为 Oak(名字源于 Gosling 办公室窗外的一棵橡树)。
-
1995年5月23日: Java 的正式亮相
- Oak 正式更名为 Java。
- 在 SunWorld 大会上,Sun Microsystems 正式发布 Java 1.0。
- 首次提出革命性的口号:“Write Once, Run Anywhere” (一次编写,到处运行)。
-
1996年1月23日: JDK 1.0 发布
- Java 语言拥有了第一个正式版本的运行环境。
- 包含纯解释执行的 Sun Classic VM。
- 代表技术: Java 虚拟机 (JVM), Applet, AWT。
-
1996年5月底: 首届 JavaOne 大会
- Sun 在美国旧金山举行了首届 JavaOne 大会。自此,JavaOne 成为全球 Java 开发者一年一度的技术盛会。
-
1997年2月19日: JDK 1.1 发布 - 基础增强
- 引入了许多奠定 Java 企业级应用基础的关键技术。
- 代表技术: JAR 文件格式, JDBC (Java 数据库连接), JavaBeans, RMI (远程方法调用)。
- 语法增强: 内部类 (Inner Classes), 反射 (Reflection)。
-
1997-1999年: JDK 1.1 的演进
- JDK 1.1 共发布了 9 个更新版本 (1.1.0 - 1.1.8)。
- 从 1.1.4 开始,每个版本有了独特的工程代号:
- 1.1.4: Sparkler (宝石)
- 1.1.5: Pumpkin (南瓜)
- 1.1.6: Abigail (阿比盖尔 - 女子名)
- 1.1.7: Brutus (布鲁图 - 古罗马政治家和将军)
- 1.1.8: Chelsea (切尔西 - 城市名)
-
1998年12月4日: JDK 1.2 发布 - Java 2 平台诞生
- 里程碑版本,工程代号 Playground (竞技场)。
- 重大变革: Sun 将 Java 技术体系正式拆分为三个方向:
- J2SE (Java 2 Platform, Standard Edition): 桌面应用
- J2EE (Java 2 Platform, Enterprise Edition): 企业级应用
- J2ME (Java 2 Platform, Micro Edition): 移动终端/嵌入式设备
- 丰富的新技术: EJB, Java Plug-in, Java IDL, Swing (新的 GUI 库)。
- 语言/API 增强:
strictfp关键字, Collections Framework (集合框架)。
-
1999年: JDK 1.2 的更新
- 3月发布 JDK 1.2.1
- 7月发布 JDK 1.2.2
-
2000年5月8日: JDK 1.3 发布
- 工程代号 Kestrel (红隼)。
- 主要改进体现在核心类库的增强,如数学运算、新的 Timer API 等。
-
2002年2月13日: JDK 1.4 发布 - 走向成熟
- 工程代号 Merlin (灰背隼)。
- 被广泛认为是 Java 走向成熟的标志性版本。性能、稳定性和功能都得到显著提升。
- 重要特性: 正则表达式 (Regex), NIO (New I/O), 日志 API (java.util.logging), XML 解析器, 加密扩展 (JCE, JSSE, JAAS) 成为标准。
-
2004年9月30日: J2SE 5.0 (JDK 5) 发布 - 语法革命
- 命名变更: Sun 改变了版本命名规则,从
1.x改为x。这是 JDK 5。 - 划时代的语言增强: 引入了对 Java 编程模型影响深远的特性:
- 泛型 (Generics)
- 注解 (Annotations)
- 自动装箱/拆箱 (Autoboxing/Unboxing)
- 枚举类型 (Enums)
- 增强 for 循环 (for-each loop)
- 可变参数 (Varargs)
- 静态导入 (Static Import)
- 并发工具包 (
java.util.concurrent), 监控管理 (JMX), 虚拟机分析工具接口 (JVMTI) 等。
- 命名变更: Sun 改变了版本命名规则,从
-
2006年12月11日: Java SE 6 (JDK 6) 发布 - 平台更名
- 平台名称变更: J2SE/J2EE/J2ME 分别更名为 Java SE / Java EE / Java ME。
- 聚焦于性能优化、诊断能力和易用性改进。
- 主要特性: 脚本语言支持 (JSR 223), 综合的 Web Services 支持 (JAX-WS 2.0), JDBC 4.0, Pluggable Annotation Processing API, JConsole 监控工具。
-
2009年2月19日: Java SE 7 (JDK 7) 发布
- 经历了较长的开发周期(原计划包含更多特性)。
- 关键特性:
try-with-resources语句, 多重异常捕获, 钻石操作符 (<>), NIO.2 (文件系统 API), Fork/Join 框架, 动态语言支持增强 (invokedynamic)。
-
2014年3月18日: Java SE 8 (JDK 8) 发布 - 函数式新时代
- 最具革命性的版本之一: 引入了 Lambda 表达式 和 Stream API,将函数式编程范式带入 Java 核心,极大地改变了集合操作和并发编程的方式。
- 其他重要特性: 新的日期时间 API (
java.time), Optional 类, Nashorn JavaScript 引擎, 移除永久代 (PermGen),引入元空间 (Metaspace)。
-
2017年9月21日: Java SE 9 (JDK 9) 发布 - 模块化
- 核心变革是引入了 Java 平台模块系统 (JPMS),即 Project Jigsaw,旨在解决“JAR Hell”问题,提高安全性、可维护性和性能。
- 其他特性: JShell (REPL 工具), HTTP/2 客户端 (孵化器 API), 集合工厂方法 (
List.of(),Set.of(),Map.of()), 改进的 Stream API。
-
2018年3月20日: Java SE 10 (JDK 10) 发布 - 新发布节奏
- 这是采用 新的六个月发布周期 后的第一个版本。
- 关键特性: 局部变量类型推断 (
var), 实验性的基于 Java 的 JIT 编译器 (Graal), 统一的垃圾收集器接口, 应用类数据共享 (AppCDS) 优化。 - Java EE / CORBA 模块被移除。 (Java EE 在此版本后正式移交给 Eclipse 基金会,并更名为 Jakarta EE)。
总结
从 James Gosling 的“绿色计划”和“Oak”开始,Java 经历了一次次重大的革新和蜕变。从 J2SE/J2EE/J2ME 到 Java SE/EE/ME(再到 Jakarta EE),从缓慢的大版本更新到快速的六个月发布周期,Java 始终保持着强大的生命力。JDK 5 的泛型与注解、JDK 8 的 Lambda 与 Stream、JDK 9 的模块化,都深刻地塑造了现代 Java 开发的面貌。
“Write Once, Run Anywhere” 的愿景虽面临挑战,但 Java 虚拟机 (JVM) 的跨平台能力依然是其核心竞争力之一。Java 的历史,是一部持续适应变化、拥抱创新的历史,它奠定了其在企业级应用、大数据、云计算和安卓开发等领域的核心地位,至今仍是全球最流行、最有影响力的编程语言之一。
更多推荐
所有评论(0)