跳到主要内容

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 的发展历程,帮助大家更好地理解这门语言的演进和技术特性。


注意事项

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