Java 发展史

43 阅读3分钟
  • 1991.4,James Gosling 领导的 Green Project 启动,Oak 问世;
  • 1995.5.23,互联网潮流兴起,Oak 改名 Java,在 SunWorld 大会正式发布 Java 1.0;Java 语言第一次提出 Write Once, Run Anywhere 的口号;
  • 1996.1.23,发布 JDK 1.0(Sum Classic VM、Applet、AWT);
  • 1997.2.19,Sun 发布 JDK 1.1(JAR、JDBC、JavaBeans、RMI、Inner Class、Reflection);
  • 1998.12.4,Sun 发布 JDK 1.2(EJB、Java Plug-in、Java IDL、Swing、JIT);
  • 1999.4.27,HotSpot VM 问世,HotSpot 最初由 Longview Techno-logies 开发,1997 年被 Sun 收购后,在 JDK 1.2 作为附加程序提供,JDK 1.3 及之后作为默认的 Java 虚拟机;
  • 2000.5.8,Sun 发布 JDK 1.3(JNDI 提升到平台级);
  • 2002.2.13,Sun 发布 JDK 1.4(正则表达式、异常链、NIO、日志类、XML、XSLT 装换器);
  • 2002,Microsoft 发布 .NET Framework;
  • 2004.9.30,Sun 发布 JDK 5(自动装箱、泛型、动态注解、枚举、可变长参数、遍历循环;Java Memory Model,java.util.concurrent);
  • 2006.11.13,Sun 宣布计划要把 Java 开源,之后的一年间,JDK 以 GPL v2 协议公开源码;并建立 OpenJDK 组织独立管理;
  • 2006.12.11,Sun 发布 JDK 6(初步的动态语言支持、编译器注解处理器;锁、同步、垃圾收集、类加载等的改进);J2EE、J2SE、J2ME -> Java EE 6、Java SE 6、Java ME 6;
  • 2009.2.19,JDK 7 的第一个里程碑版本完成;
  • 2009.4.20,Oracle 以 74 亿美元收购市值曾超过 2000 亿美元的 Sun,Java 商标划归 Oracle(Java 语言不属于任何公司,它由 JCP 组织管理,但 Sun/Oracle 在 JCP 的话语权很大);此前 Oracle 收购了 BEA,因此 Oracle 得到世界三大 JVM 其中的两个:JRockit 和 HotSpot;
  • 2011.7.28,Oracle 发布 JDK 7(G1、可并行的类加载框架、加强对非 Java 语言调用的支持等);JDK 7 Update 4 开始正式支持 Mac OS X;JDK 7 也是支持 Windows XP 的最后一个版本;
  • 2014.3.18,Oracle 发布 JDK 8(Lambda、时间 API、日期 API、移除 HotSpot 永久代);Oracle 启用 JEP(JDK Enhancement Proposals)来定义和管理纳入新版 JDK 发布范围的功能特性;
  • 2017.9.12,Oracle 发布 JDK 9(Jigsaw 模块化;HotSpot 日志系统、HTTP 2 客户端 API 等);期间多次跳票,IBM 在 JDK 模块化方面有最好的实现标准,还带头城里了 OSGi 联盟,和 RedHat 为首的十三家企业在 JCP 联手否决 Oracle 的 Jigsaw 作为 Java 模块化规范;最终 Oracle 以公开表示宁愿摒弃 JSR 专家组,独立发展 Jigsaw 的 Java 为胁,Jigsaw 最终发布;JDK 9 开始,JDK 每年 3 月和 9 月各发布一个大版本,每 6 个大版本才会出一个长期支持的版本(LTS:3 年,JDK 8、JDK 11、JDK 17;普通版本:6 个月);
  • 2018.3.20,Oracle 发布 JDK 10(内部重构:同一源仓库、同一垃圾收集器接口、同一即使编译器接口等);
  • 2018.3.27,法庭最终裁定 Android 侵权 Java 案,Google 赔偿 Oracle 合计 88 亿美元(Oracle 在 2009 年以 74 亿收购 Sun 后反手用 Sun 的专利将 Google 告上法庭);此前 Microsoft 不兼容标准 JVM 的 J++ 被 Sun 告到登报道歉,声明放弃 J++ 语言和 Windows 内置 VM;
  • 2018.3,Java EE 称为历史,Oracle 将其捐赠给 Eclipse 基金会,并不再允许使用 Java 商标(Jakarta EE);
  • 2018.6,Java Mission Control 开发团队被 Oracle 解散;
  • 2018.9.25,Oracle 发布 JDK 11(LTS、ZGC、Lambda 类型推断);Oracle 调整 JDK 协议,此后将同时发布两个 JDK(以 GPL v2 + CE 协议发行的 Oracle OpenJDK:免费使用,半年更新支持;以 OTN 协议发行的 OracleJDK: 生产环境商用必须付费,3 年更新支持),Java 开始收费(迫使商业用户要么不断升级 JDK 版本,使用 OpenJDK,要么去购买商业支持);
  • 2018.10,最后一届 JavaOne 大会举行;
  • 2019.2,RedHat 从 Oracle 手上接过 OpenJDK 8 和 OpenJDk 11 的管理全和维护职责;
  • 2019.3.20,Oracle 发布 JDK 12(Swtich 表达式、JMH;Shenandoah GC);Shenandoah GC 成为唯一进入 OpenJDk 而在 OracleJDK 无法使用的功能;