作者: 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) 的版本紧密相连。让我们沿着时间线回顾那些关键的里程碑:

  1. 1991年4月: “Oak” 的萌芽

    • 由 James Gosling 领导的 “绿色计划” (Green Project) 启动,旨在为消费电子产品(如交互式电视)开发一种新的编程语言。
    • 这种新语言最初被命名为 Oak(名字源于 Gosling 办公室窗外的一棵橡树)。
  2. 1995年5月23日: Java 的正式亮相

    • Oak 正式更名为 Java
    • 在 SunWorld 大会上,Sun Microsystems 正式发布 Java 1.0
    • 首次提出革命性的口号:“Write Once, Run Anywhere” (一次编写,到处运行)
  3. 1996年1月23日: JDK 1.0 发布

    • Java 语言拥有了第一个正式版本的运行环境。
    • 包含纯解释执行的 Sun Classic VM
    • 代表技术: Java 虚拟机 (JVM), Applet, AWT。
  4. 1996年5月底: 首届 JavaOne 大会

    • Sun 在美国旧金山举行了首届 JavaOne 大会。自此,JavaOne 成为全球 Java 开发者一年一度的技术盛会。
  5. 1997年2月19日: JDK 1.1 发布 - 基础增强

    • 引入了许多奠定 Java 企业级应用基础的关键技术。
    • 代表技术: JAR 文件格式, JDBC (Java 数据库连接), JavaBeans, RMI (远程方法调用)。
    • 语法增强: 内部类 (Inner Classes), 反射 (Reflection)。
  6. 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 (切尔西 - 城市名)
  7. 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 (集合框架)。
  8. 1999年: JDK 1.2 的更新

    • 3月发布 JDK 1.2.1
    • 7月发布 JDK 1.2.2
  9. 2000年5月8日: JDK 1.3 发布

    • 工程代号 Kestrel (红隼)
    • 主要改进体现在核心类库的增强,如数学运算、新的 Timer API 等。
  10. 2002年2月13日: JDK 1.4 发布 - 走向成熟

    • 工程代号 Merlin (灰背隼)
    • 被广泛认为是 Java 走向成熟的标志性版本。性能、稳定性和功能都得到显著提升。
    • 重要特性: 正则表达式 (Regex), NIO (New I/O), 日志 API (java.util.logging), XML 解析器, 加密扩展 (JCE, JSSE, JAAS) 成为标准。
  11. 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) 等。
  12. 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 监控工具。
  13. 2009年2月19日: Java SE 7 (JDK 7) 发布

    • 经历了较长的开发周期(原计划包含更多特性)。
    • 关键特性: try-with-resources 语句, 多重异常捕获, 钻石操作符 (<>), NIO.2 (文件系统 API), Fork/Join 框架, 动态语言支持增强 (invokedynamic)。
  14. 2014年3月18日: Java SE 8 (JDK 8) 发布 - 函数式新时代

    • 最具革命性的版本之一: 引入了 Lambda 表达式Stream API,将函数式编程范式带入 Java 核心,极大地改变了集合操作和并发编程的方式。
    • 其他重要特性: 新的日期时间 API (java.time), Optional 类, Nashorn JavaScript 引擎, 移除永久代 (PermGen),引入元空间 (Metaspace)。
  15. 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。
  16. 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 的历史,是一部持续适应变化、拥抱创新的历史,它奠定了其在企业级应用、大数据、云计算和安卓开发等领域的核心地位,至今仍是全球最流行、最有影响力的编程语言之一。

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐