作者:海拥
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.0 | 1996 年 1 月 | 第一个版本于 1996 年 1 月 23 日发布。主要的稳定变体 JDK 1.0.2 称为 Java 1。 |
JDK 1.1 | 1997 年 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 档案