跳到主要内容

Java 的发展历程

诞生

  1. 时间:1991 年
  2. 作者:James Gosling(Sun 公司的“Green Project”)
  3. 原名:Oak(橡树)
  4. 目标市场:电子设备的嵌入式编程(未成功)

发展 1

  1. 时间:1995 年 5 月 23 日
  2. 背景:互联网应用迅速发展
  3. 事件:在 SunWorld 大会上,语言正式更名为 Java,版本为 Java 1.0
  4. 名称来源:Java(取自印度尼西亚的爪哇岛)
  5. 口号:一次编译,全平台通用

发展 2

  1. 时间:1996 年 1 月 23 日
  2. 发布:JDK 1.0(Java 开发工具包)

技术

  1. Sun Classic Virtual Machine:Java 虚拟机
  2. Applet:可嵌入网页的小型应用程序
  3. AWT(Abstract Window Toolkit):抽象窗口工具包,用于创建和绘制用户界面

发展 3

  1. 时间:1996 年 4 月
  2. 事件:主要操作系统开始支持 Java

发展 4

  1. 时间:1996 年 5 月
  2. 事件:首届 JavaOne 大会召开,成为每年一度的 Java 技术盛会

发展 5

  1. 时间:1996 年 9 月
  2. 事件:包含 Java 应用的网页数量达到 8.3 万

发展 6

  1. 时间:1997 年 2 月 19 日
  2. 发布:JDK 1.1

技术

  1. JAR 文件格式:Java 归档文件,用于打包类文件、元数据和资源
  2. JDBC:Java 数据库连接,提供标准的数据库访问接口
  3. JavaBeans:可重用的 Java 组件技术规范
  4. RMI(Remote Method Invocation):远程方法调用机制
  5. Java 语法增强:提高语言的易用性和功能性

发展 7

  1. 时间:1998 年 12 月 4 日
  2. 发布:JDK 1.2

技术

  1. EJB(Enterprise JavaBeans):企业级 Java 组件模型
  2. Java Plug-in:浏览器的 Java 插件系统
  3. Swing:基于 AWT 的跨平台图形用户界面工具包
  4. Java IDL:Java 的跨语言交互工具
  5. Collections:Java 集合框架
  6. JIT(Just-In-Time)编译器:即时编译,提高运行效率

发展方向

  1. J2SE(Standard Edition):面向桌面应用
  2. J2EE(Enterprise Edition):面向企业级应用
  3. J2ME(Micro Edition):面向移动终端

画板

发展 8

  1. 时间:1999 年 4 月 27 日
  2. 事件:HotSpot 虚拟机诞生,由 Sun 收购的 Loginview Technologies 开发

发展 9

  1. 时间:2000 年 5 月 8 日

  2. 发布

    • HotSpot 成为 Java 默认虚拟机
    • 改进 Java 类库
    • 引入 JNDI(Java 命名和目录接口)

发展 10

  1. 时间:2001 年 5 月 17 日
  2. 发布:JDK 1.3.1(修订版)

发展 11

  1. 时间:2002 年 9 月 16 日
  2. 发布:JDK 1.4.1(修订版)
  3. 事件:.NET 与 Java 的竞争开始

发展 12

  1. 时间:2003 年 6 月 26 日
  2. 发布:JDK 1.4.2(修订版)

发展 13

  1. 时间:2004 年 9 月 30 日

  2. 发布:JDK 1.5

    • 改进语法的易用性
    • 引入 JMM(Java 内存模型),统一并发效果
    • 添加concurrent并发包,由 Doug Lea 开发

发展 14

  1. 时间:2006 年 11 月 13 日
  2. 事件:在 JavaOne 大会上,宣布计划将 Java 开源,成立 OpenJDK 组织

发展 15

  1. 时间:2006 年 12 月 11 日
  2. 发布:JDK 6(版本命名方式改为整数)
  3. 事件:发布 Java EE 6、Java SE 6、Java ME 6

技术

  1. 动态语言支持
  2. 注解处理器
  3. HTTP 服务器 API
  4. 大量内部机制改进

发展 16

  1. 时间:2009 年 2 月 19 日
  2. 发布:JDK 7
  3. 技术:引入 G1 垃圾收集器(实验阶段)
  4. 缺憾:由于 Sun 公司决策问题,大部分规划的版本迭代未能完成

发展 17

  1. 时间:2009 年 4 月 20 日

  2. 事件:Oracle 收购 Sun 公司

    Oracle 收购 Sun 的主要目的是获取 Java 编程语言和 MySQL 数据库技术。此外,Oracle 还获得了 Sun 的服务器硬件和操作系统技术。Sun 公司在 2000 年代初期面临互联网泡沫破裂、市场份额下降和激烈竞争等问题,财务状况不佳。硬件项目失败和 Solaris 操作系统推广不力也是原因之一。这些问题导致 Sun 公司的财务业绩下降和股票价值减少,使得 Oracle 能够以较低的价格收购 Sun。尽管 Sun 的产品和技术推动了计算机产业的发展,但其商业模式、管理和市场策略的问题最终导致公司陷入困境。

发展 18

  1. 时间:2011 年 7 月 28 日
  2. 发布:JDK 7 的更新版本

技术

  1. G1 垃圾收集器
  2. 非 Java 语言的调用支持
  3. 并行类加载架构

发展 19

  1. 时间:2014 年 3 月 18 日
  2. 发布:JDK 8
  3. 规范:引入 JEP(JDK Enhancement Proposals,JDK 增强提案)

技术

  1. Lambda 表达式
  2. Nashorn JavaScript 引擎:替代 Rhino,将 JavaScript 转换为 Java 字节码,提升性能

发展 20

  1. 时间:2017 年 9 月 21 日
  2. 发布:JDK 9

技术

  1. Jigsaw:模块化系统
  2. JShell:交互式 Shell 工具
  3. JLink:链接器工具
  4. JHSDB(Java HotSpot Debugger):进程外调试工具

发展 21

  1. 时间:2018 年 3 月 20 日
  2. 发布:JDK 10

事件

  1. 统一源代码仓库
  2. 统一垃圾收集器接口
  3. 统一即时编译器接口

发展 22

  1. 时间:2018 年 3 月

  2. 事件:Java EE 移交给 Eclipse 基金会,更名为 Jakarta EE

    Eclipse 基金会是欧洲最大的开源组织,成立于 2004 年。

发展 23

  1. 时间:2018 年 9 月 25 日

  2. 发布:JDK 11

  3. 事件:调整 JDK 授权许可

    • OpenJDK 对个人用户免费
    • Oracle JDK 对商业用户收费

发展 24

  1. 时间:2018 年 10 月
  2. 事件:第 22 届 JavaOne 大会召开

发展 25

  1. 时间:2019 年 3 月 20 日
  2. 发布:JDK 12

事件

  1. 支持 switch 表达式
  2. 引入 JMH(Java Microbenchmark Harness)

发展 26

  1. 时间:2019 年 9 月 17 日
  2. 发布:JDK 13
  3. 事件:改善 Java SE 和 JDK 的性能

发展 27

  1. 时间:2020 年 3 月 17 日
  2. 发布:JDK 14 和 JDK 15
  3. 事件:优化早期版本功能,新增和增强部分功能

发展 28

  1. 时间:2021 年 3 月 16 日
  2. 发布:JDK 16
  3. 事件:继续优化功能,增加和升级新特性

发展 29

  1. 时间:2021 年 9 月 14 日
  2. 发布:JDK 17
  3. 事件:优化早期版本,增加新功能

发展 30

  1. 时间:2022 年 9 月 22 日
  2. 发布:JDK 19
  3. 事件:持续优化,增加新功能

结语

自 Oracle 接手以来,JDK 的发展趋于稳定,版本更新更为频繁且有序。我希望通过梳理 Java 的发展历程,帮助大家更好地理解这门语言的演进和技术特性。


注意事项

  • 本文内容基于公开资料整理,如有更新或差异,请以官方信息为准。
  • 图片和链接均保留原始位置,方便读者参考。