java历史版本
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格式的读写
- 集成XML分析与XSLT处理机 (JAXP) (描述于 JSR 5 和 JSR 63.)
- 集成安全密码扩展 (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.MONDAY
,Day.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,以及内部集成 Mozilla JavascriptRhino
- 核心平台以及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的内建支持进行着争论,而这个特性在其他很多语言中都是可用的.