Java 编程语言的完整历史

70 阅读5分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第2天,点击查看活动详情

Java 是一种面向对象的编程语言,由 James Gosling 在 1990 年代初期开发。团队发起这个项目是为了开发一种用于数字设备(如机顶盒、电视等)的语言。最初在项目中考虑使用 C++,但这个想法被拒绝了,原因有几个(例如 C++ 需要更多内存)。Gosling 努力改变和扩展C++,但不久就放弃了这一点,以制作另一个名为 Green 的舞台。James Gosling 和他的团队将他们的项目称为“ Greentalk ”,其文件扩展名为.gt,后来被称为“ OAK ”。为什么是“橡树”?高斯林在他办公室外的一棵橡树之后使用了橡树这个名字。此外,橡树是团结的形象,被美国、法国、德国、罗马尼亚等众多国家选为国树。但后来他们不得不将其重命名为“ JAVA ”,因为它已经是橡树科技的商标。“JAVA” Gosling 和他的团队进行了一次头脑风暴会议,会议结束后,他们提出了几个名称,如JAVA、DNA、SILK、RUBY 等。Java 名称是经过多次讨论后确定的,因为它是如此独特。Java 这个名字来源于一种浓缩咖啡豆 ,爪哇。高斯林在办公室附近喝咖啡时想出了这个名字。Java 是根据鲁棒、可移植、平台无关、高性能、多线程等原则创建的,被《时代》杂志称为1995 年十大最佳产品之一。目前,Java 用于互联网编程、移动设备、游戏、电子商务解决方案等。Java 语言自JDK 1.0以来经历了一些变化就像对标准库的类和包的各种扩充一样。除了语言变化之外,Java 类库多年来也发生了相当大的变化,从 JDK 1.0 中的几百个类发展到 J2SE 5 中的三千多个类。各种 Java 版本的历史:

版本发布日期主要变化
JDK 测试版1995
JDK 1.01996 年 1 月第一个版本于 1996 年 1 月 23 日发布。主要的稳定变体 JDK 1.0.2 称为 Java 1。
JDK 1.11997 年 2 月于 1997 年 2 月 19 日发布。与 1.0 版相比,JDK 1.1 中有许多新增功能,例如
  • 对 AWT 场合节目的广泛改组
  • 添加到语言的内部类
  • JavaBeans
  • JDBC
  • RMI|

| J2SE 1.2|1998 年 12 月| “Play area”是这个表格的代号,于1998年12月8日发布。它真正的扩展包括:strictfp关键字

  • Swing 图形 API 被协调到中心类中

  • Sun 的 JVM 突然配备了 JIT 编译器

  • Java 模块

  • Java IDL,用于 CORBA 互操作性的 IDL 用法

  • 收藏系统| J2SE 1.3|2000 年 5 月| 代号——“KESTREL”发布日期——2000 年 5 月 8 日

  • 包括 HotSpot JVM

  • Java 命名和目录接口

  • JPDA

  • Java 声音

  • 综合代理类 J2SE 1.4|2002 年 2 月| 代号 - “Merlin” 发布日期 - 2002 年 2 月 6 日 添加:库改进

  • 以 Perl 正则表达式为模型的正则表达式

  • 用于以 JPEG 和 PNG 等格式读取和写入图像的图像 I/O API

  • 集成 XML 解析器和 XSLT 处理器 (JAXP)(在 JSR 5 和 JSR 63 中指定)

  • 首选项 API (java.util.prefs) 此版本的公共支持和安全更新已于 2008 年 10 月结束。

J2SE 5.0|2004 年 9 月| 代号-“Tiger” 发布日期-“2004 年 9 月 30 日” 最初编号为 1.5,仍用作其内部版本。添加了几个新的语言功能,例如:

  • for-each 循环

  • 泛型

  • 自动装箱

  • 可变参数 JAVA SE 6|2006 年 12 月| 代号 - “Mustang” 发布日期 - 2006 年 12 月 11 日 与数据库管理程序一起打包,鼓励在 JVM 中使用脚本语言。将名称 J2SE 替换为 java SE 并从版本号中删除 .0。补充:

  • 将 JAXB 升级到 2.0 版:包括集成 StAX 解析器。

  • 支持可插入注释 (JSR 269)。

  • JDBC 4.0 支持 (JSR 221) JAVA SE 7|2011 年 7 月| 代号-“海豚”发布日期-2011 年 7 月 7 日 添加了小的语言更改,包括开关中的字符串。JVM 得到了扩展,支持动态语言。补充:

  • 压缩的 64 位指针。

  • 二进制整数文字。

  • XML 和 Unicode 的上游更新。 JAVA SE 8|2014 年 3 月|发布日期 - 2014 年 3 月 18 日 对 lambda 表达式和默认方法的语言级别支持以及受 Joda Time 启发的新日期和时间 API。 JAVA SE 9|2017 年 9 月|发布日期:2017 年 9 月 21 日 Project Jigsaw:为 Java SE 平台设计和实现标准、模块系统,并将该系统应用于平台本身和 JDK。 JAVA SE 10|2018 年 3 月| 发布日期 - 3 月 20 日补充:

  • 额外的 Unicode 语言标签扩展

  • 根证书

  • 线程本地握手

  • 替代内存设备上的堆分配

  • 删除本机头生成工具 - javah。

  • 将 JDK 林整合到一个存储库中。 JAVA SE 11|2018 年 9 月| 发布日期 - 2018 年 9 月 25 日

  • 动态类文件常量

  • Epsilon:无操作垃圾收集器

  • lambda 参数的局部变量语法

  • 低开销的堆分析

  • HTTP 客户端(标准)

  • 传输层安全 (TLS) 1.3

  • 飞行记录仪 JAVA SE 12|2019 年 3 月| 发布日期 - 2019 年 3 月 19 日

  • Shenandoah:一种低暂停时间的垃圾收集器(实验性)

  • 微基准套件

  • 切换表达式(预览)

  • JVM 常量 API

  • 一个 AArch64 端口,不是两个

  • 默认 CDS 档案