Java 的发展历程
诞生
- 时间:1991 年
- 作者:James Gosling(Sun 公司的“Green Project”)
- 原名:Oak(橡树)
- 目标市场:电子设备的嵌入式编程(未成功)
发展 1
- 时间:1995 年 5 月 23 日
- 背景:互联网应用迅速发展
- 事件:在 SunWorld 大会上,语言正式更名为 Java,版本为 Java 1.0
- 名称来源:Java(取自印度尼西亚的爪哇岛)
- 口号:一次编译,全平台通用
发展 2
- 时间:1996 年 1 月 23 日
- 发布:JDK 1.0(Java 开发工具包)
技术
- Sun Classic Virtual Machine:Java 虚拟机
- Applet:可嵌入网页的小型应用程序
- AWT(Abstract Window Toolkit):抽象窗口工具包,用于创建和绘制用户界面
发展 3
- 时间:1996 年 4 月
- 事件:主要操作系统开始支持 Java
发展 4
- 时间:1996 年 5 月
- 事件:首届 JavaOne 大会召开,成为每年一度的 Java 技术盛会
发展 5
- 时间:1996 年 9 月
- 事件:包含 Java 应用的网页数量达到 8.3 万
发展 6
- 时间:1997 年 2 月 19 日
- 发布:JDK 1.1
技术
- JAR 文件格式:Java 归档文件,用于打包类文件、元数据和资源
- JDBC:Java 数据库连接,提供标准的数据库访问接口
- JavaBeans:可重用的 Java 组件技术规范
- RMI(Remote Method Invocation):远程方法调用机制
- Java 语法增强:提高语言的易用性和功能性
发展 7
- 时间:1998 年 12 月 4 日
- 发布:JDK 1.2
技术
- EJB(Enterprise JavaBeans):企业级 Java 组件模型
- Java Plug-in:浏览器的 Java 插件系统
- Swing:基于 AWT 的跨平台图形用户界面工具包
- Java IDL:Java 的跨语言交互工具
- Collections:Java 集合框架
- JIT(Just-In-Time)编译器:即时编译,提高运行效率
发展方向
- J2SE(Standard Edition):面向桌面应用
- J2EE(Enterprise Edition):面向企业级应用
- J2ME(Micro Edition):面向移动终端
发展 8
- 时间:1999 年 4 月 27 日
- 事件:HotSpot 虚拟机诞生,由 Sun 收购的 Loginview Technologies 开发
发展 9
-
时间:2000 年 5 月 8 日
-
发布:
- HotSpot 成为 Java 默认虚拟机
- 改进 Java 类库
- 引入 JNDI(Java 命名和目录接口)
发展 10
- 时间:2001 年 5 月 17 日
- 发布:JDK 1.3.1(修订版)
发展 11
- 时间:2002 年 9 月 16 日
- 发布:JDK 1.4.1(修订版)
- 事件:.NET 与 Java 的竞争开始
发展 12
- 时间:2003 年 6 月 26 日
- 发布:JDK 1.4.2(修订版)
发展 13
-
时间:2004 年 9 月 30 日
-
发布:JDK 1.5
- 改进语法的易用性
- 引入 JMM(Java 内存模型),统一并发效果
- 添加
concurrent
并发包,由 Doug Lea 开发
发展 14
- 时间:2006 年 11 月 13 日
- 事件:在 JavaOne 大会上,宣布计划将 Java 开源,成立 OpenJDK 组织
发展 15
- 时间:2006 年 12 月 11 日
- 发布:JDK 6(版本命名方式改为整数)
- 事件:发布 Java EE 6、Java SE 6、Java ME 6
技术
- 动态语言支持
- 注解处理器
- HTTP 服务器 API
- 大量内部机制改进
发展 16
- 时间:2009 年 2 月 19 日
- 发布:JDK 7
- 技术:引入 G1 垃圾收集器(实验阶段)
- 缺憾:由于 Sun 公司决策问题,大部分规划的版本迭代未能完成
发展 17
-
时间:2009 年 4 月 20 日
-
事件:Oracle 收购 Sun 公司
Oracle 收购 Sun 的主要目的是获取 Java 编程语言和 MySQL 数据库技术。此外,Oracle 还获得了 Sun 的服务器硬件和操作系统技术。Sun 公司在 2000 年代初期面临互联网泡沫破裂、市场份额下降和激烈竞争等问题,财务状况不佳。硬件项目失败和 Solaris 操作系统推广不力也是原因之一。这些问题导致 Sun 公司的财务业绩下降和股票价值减少,使得 Oracle 能够以较低的价格收购 Sun。尽管 Sun 的产品和技术推动了计算机产业的发展,但其商业模式、管理和市场策略的问题最终导致公司陷入困境。
发展 18
- 时间:2011 年 7 月 28 日
- 发布:JDK 7 的更新版本
技术
- G1 垃圾收集器
- 非 Java 语言的调用支持
- 并行类加载架构
发展 19
- 时间:2014 年 3 月 18 日
- 发布:JDK 8
- 规范:引入 JEP(JDK Enhancement Proposals,JDK 增强提案)
技术
- Lambda 表达式
- Nashorn JavaScript 引擎:替代 Rhino,将 JavaScript 转换为 Java 字节码,提升性能
发展 20
- 时间:2017 年 9 月 21 日
- 发布:JDK 9
技术
- Jigsaw:模块化系统
- JShell:交互式 Shell 工具
- JLink:链接器工具
- JHSDB(Java HotSpot Debugger):进程外调试工具
发展 21
- 时间:2018 年 3 月 20 日
- 发布:JDK 10
事件
- 统一源代码仓库
- 统一垃圾收集器接口
- 统一即时编译器接口
发展 22
-
时间:2018 年 3 月
-
事件:Java EE 移交给 Eclipse 基金会,更名为 Jakarta EE
Eclipse 基金会是欧洲最大的开源组织,成立于 2004 年。
发展 23
-
时间:2018 年 9 月 25 日
-
发布:JDK 11
-
事件:调整 JDK 授权许可
- OpenJDK 对个人用户免费
- Oracle JDK 对商业用户收费
发展 24
- 时间:2018 年 10 月
- 事件:第 22 届 JavaOne 大会召开
发展 25
- 时间:2019 年 3 月 20 日
- 发布:JDK 12
事件
- 支持 switch 表达式
- 引入 JMH(Java Microbenchmark Harness)
发展 26
- 时间:2019 年 9 月 17 日
- 发布:JDK 13
- 事件:改善 Java SE 和 JDK 的性能
发展 27
- 时间:2020 年 3 月 17 日
- 发布:JDK 14 和 JDK 15
- 事件:优化早期版本功能,新增和增强部分功能
发展 28
- 时间:2021 年 3 月 16 日
- 发布:JDK 16
- 事件:继续优化功能,增加和升级新特性
发展 29
- 时间:2021 年 9 月 14 日
- 发布:JDK 17
- 事件:优化早期版本,增加新功能
发展 30
- 时间:2022 年 9 月 22 日
- 发布:JDK 19
- 事件:持续优化,增加新功能
结语
自 Oracle 接手以来,JDK 的发展趋于稳定,版本更新更为频繁且有序。我希望通过梳理 Java 的发展历程,帮助大家更好地理解这门语言的演进和技术特性。
注意事项
- 本文内容基于公开资料整理,如有更新或差异,请以官方信息为准。
- 图片和链接均保留原始位置,方便读者参考。