你的位置:首页 > Java教程

[Java教程]java版本历史概述

总结了Java从95年诞生以来发布的各个版本。

来自维基百科,自由的百科全书

概要:

Java Web Start,首次引入了J2SE 1.3,通过点击桌面图标或网站链接即可在网络上提供应用程序。

自JDK 1.0以来,Java语言已经经历了数次变更,标准库增加了大量的类库及包。从J2SE 1.4开始,Java语言的更新由Java社区组织(JCP)进行,他们使用Java规范要求(JSRs)建议并描述Java平台的改进及变化。语言由Java语言说明书(JLS)进行说明;JLS的变更由JSR 901管理。

在语言改变的同时,数年来Java类库也发生了更加戏剧性的变化,从JDK 1.0的数百个类发展到了J2SE 5.0的三千多个。引入了完整的新API,如Swing和Java2D,大量JDK 1.0的类及方法被标注为已过时。

某些程序允许Java程序从一个Java平台的版本转换到更早以前的版本。(如从Java 5.0回迁到1.4)(查看Java 回迁工具)

目录:

  • 1 JDK 1.0 (1月23日, 1996)
  • 2 JDK 1.1 (2月19日, 1997)
  • 3 J2SE 1.2 (12月8日, 1998)
  • 4 J2SE 1.3 (5月8日, 2000)
  • 5 J2SE 1.4 (2月6日, 2002)
  • 6 J2SE 5.0 (9月30日, 2004)
  • 7 Java SE 6 (12月11日, 2006)8 Java SE 7
    • 7.1 Java SE 6 Update 10
    • 7.2 Java SE 6 Update 12
    • 7.3 Java SE 6 Update 14
    • 7.4 Java SE 6 Update 16

 

JDK 1.0 (一月23日, 1996)

代号Oak. 最初发布

JDK 1.1 (二月19日, 1997)

主要更新:

  • AWT事件模型大量更新
  • inner classes加入
  • JavaBeans
  • JDBC
  • RMI

J2SE 1.2 (12月8日, 1998)

代号Playground. 此版本直至J2SE 5.0都以Java 2的以及版本名"J2SE"(Java 2 平台,标准版)取代了JDK,以区别它与J2EE(JAVA 2 平台,企业版)以及J2ME(JAVA 2 平台,微版)的基本平台。主要更新:

  • strictfp 关键字
  • 仅支持自检,没有实时改变的反射功能可用了.
  • Swing 绘图API被添加到核心类中
  • Sun第一次通过 JIT compiler实现了虚拟机(JVM)
  • Java 插件
  • Java IDL, 通过 IDL完成CORBA互操作
  • Collections framework

J2SE 1.3 (五月8日, 2000)

代号Kestrel. 重大更新如下:

  • 热点 虚拟机 (热点虚拟机发布于 1999年4月的J2SE 1.2 JVM)
  • 为支持与CORBA的兼容性,改进了RMI
  • JavaSound
  • Java 命名与目录接口 (JNDI) 被加入到核心库 (之前为扩展)
  • Java Platform Debugger Architecture (JPDA)

J2SE 1.4 (2月6日, 2002)

代号Merlin. Java平台首次在JCP下开发发布,基于JSR 59 规范. 主要更新:

  • assert 关键字 (描述于 JSR 41.)
  • 正则表达式 模仿了 Perl 的正则表达式建模
  • exception chaining 允许一个异常封装最初的低级异常
  • 支持网络协议6版 (IPv6)
  • 非阻塞NIO (New Input/Output) (描述于 JSR 51.)
  • logging API (描述于 JSR 47.)
  • image I/O API 支持JPEG and PNG格式的读写
  • 集成
  • 集成安全密码扩展 (JCE, JSSE, JAAS)
  • Java Web Start  (Java Web Start 最初发布于2001年5月的J2SE 1.3) (描述于 JSR 56.)

J2SE 5.0 (9月30日, 2004)

代号 Tiger. (初号1.5 仍作为内部版本号) 基于 JSR 176 规范开发。 Tiger 增加了大量新的重要语言特征:

  • Generics: 为大多数 typecasts (类型转换)的收集与消除提供 编译时(静态) 类型安全  (描述于 JSR 14.)
  • Metadata: 又称 annotations; 允许类与方法的语言结构以附加数据标记, 它们会被 metadata-aware 功能识别处理. (描述于 JSR 175.)
  • Autoboxing/unboxing: 自动转换 primitive types (如 int) 与 primitive wrapper classes (如 Integer). (描述于 JSR 201.)
  • Enumerations:  enum 关键字创建 类型安全, 规则的列表 (如 Day.MONDAYDay.TUESDAY等.). 之前只能通过非类型安全的常量集成或手动建类 (类型安全的枚举模式)来实现. (描述于JSR 201.)
  • Swing: 新增 动态换肤 look and feel , 名为 synth.
  • Varargs: 方法的最后参量现在可以通过三点结尾的类型名声明了(如 void drawtext(String... lines)). 在调用代码中,可以使用类型的任意个参量,并且会放入一个数组中传给方法,调用代码也可以以数组传递类型。
  • 增强了 for each 循环: 通过重复每个数组或Iterable的成员,for循环被专门的语法扩展了,如标准Collection类,可以以如下表建立:
 void displayWidgets (Iterable<Widget> widgets) {
for (Widget w: widgets) {
w.display();
}
这个例子在 Iterable对象的widgets中,循环以变量w分配到每项,并在各项调用Widget方法display()(描述于 JSR 201)
  • 修复了之前 Java 存储模型 的破损语义, 定义了线程与存储间的相互作用
  • 为 RMI对象自动生成 stub.
  • 静态入口
  • 1.5.0_18 (5u18) 是JAVA最后一个发布的支持微软Windows 9x系列的官方版本(Windows 95, Windows 98, Windows ME).  非官方版本的JAVA SE 6 Update 7是这一系列操作系统上工作的最后版本(1.6.0.7) systems. 
  •  并发处理 收于 java.util.concurrent 包.
  • Scanner 类用于分解各种输入流与块的数据.

J2SE 5.0 在2008年4月8日 走到了尽头 ,SUN将在2009年10月30日对其停止提供支持.

Java SE 6 (12月11日, 2006)

代号Mustang. 这个版本,SUN以Java SE替换了"J2SE" 去掉了版本号的'.0',内部开发号保持1.6.0。此版本基于JSR 270标准开发

在开发阶段,在约一周内发布了包括增强及BUG修复工作在内的新结构。Beta版本发布于2006年2月和6月,最终版本发布于2006年12月11日。当前版本Update 16发布于2009年8月.

主要更新:

  • 舍弃了对旧版Win9x的支持. 非官方版Java 6 Update 7 是Java最后发布的支持这些Windows的版本。这些将在Update 10的主要改变中看出来.
  • 脚本语言支持 (JSR 223): 与脚本语言紧密结合的通用API,以及内部集成 MozillaJavascript Rhino 
  • 核心平台以及Swing强大的性能提升.
  • 通过 JAX-WS 改进了 Web Service 支持 (JSR 224)
  • JDBC 4.0 支持 (JSR 221).
  • Java Compiler API (JSR 199): 一个允许JAVA程序选择以及使用Java编译器的API.
  •  JAXB 升级至 2.0: 集成了一个 StAX 解析器.
  • 支持即插即用的 annotations (JSR 269)
  • 大量 GUI 改进, 如在API中集成 SwingWorker , 表排排列及滤镜, true Swing 双缓冲 (取消了 gray-area 效果).

Java SE 6 Update 10

Java SE 6 Update 10 (之前为 Java SE 6 Update N), 并未改变任何公共 API, 主要增强了最终用户的可用性. 发布版本目前可下载.

主要更新:

  • Java Deployment Toolkit,  JavaScript 方法集,简化了 applets 和 Java Web Start 程序的开发.
  • Java Kernel, 很小的安装程序,仅包含最常用的JRE类. 需要时会下载其他包.
  • updater增强.
  • 增强了版本功能及pack200支持: 不再需要服务器支持.
  • Java Quick Starter, 改善冷启动时间.
  • 改善 Java2D 在Windows图像初始化的性能, 使用 Direct3D 及硬件加速.
  • 新的Swing look and feel 名为 Nimbus ,基于 synth.
  • 下一代 Java 插件: applets 现在运行于一个独立的进程,并支持Web Start程序的多数特性.

Java SE 6 Update 12

这次发布包含了期待值很高的64位Java插件(仅64位浏览器可用),支持 Windows Server 2008, 提升了Java and JavaFX 应用程序的性能.

Java SE 6 Update 14

Java SE 6 Update 14 (6u14) 发布于2009年5月28日.

包含了对 Hotspot JIT 编译器的大规模性能提升, 压缩了64位机的指针,如对G1(Gabage First)暂停时间优先垃圾收集器的支持.

一些开发者注意到,这次的版本出现一个让调试器随机丢失断点的问题. 由于这个问题,Sun有一个对应的bug. 工作区允许客户端与服务器VMs. 使用 -XX:+UseParallelGC 项阻止失败.另一个工作区则回退到update 13.

Java SE 6 Update 16

09年8月11日, Java SE 6 Update 16 问世, 修复了update 14中调试器丢失断点的问题.

Java SE 7

Java 7 (代号 Dolphin) 是Java的下个版本, 目前正在计划与开发阶段. 06年8月开始Dolphin项目,暂定于2010年早些时候发布. 一周后,包含增强及bug修复的架构发布了.

Java 7集成的新特性 包括:

  • JVM 对 动态语言 的支持, 对应最近完成的 多语言虚拟机 原型
  • 新增 多核 处理器 并行计算 的库,
  • Superpackages (JSR 294), 在库或模块中精确描述在类是否在库外可见 ,
  • 用G1垃圾收集器替换了并发暂停时间优先垃圾收集器 (又称CMS 或Concurrent Mark-Sweep collector).
  • 很多小的语言更新, 汇总到了 Project Coin 项目. 这些更新仍然在评价中,可能包含:  字符转换,构造器更的调用更简洁,异常的多catch等.

Java团队也在就是否需要增加对closure的内建支持进行着争论,而这个特性在其他很多语言中都是可用的.

 

文章来源:http://article.yeeyan.org/view/78729/63022