Java 从 1995 年发布至今,已经经历了 22 个年头,下面梳理了期间 Java 大版本变更时间以及对应的新特性支持情况。
Java SE 8 (2014 年 3 月 18 号)
该版本的主要更新内容包括:
支持 lamdba expressions;
移除了 PermGen Error;
支持方法引用;
支持默认方法;
TLS1.1 和 TLS1.2 被设为默认启动,提高安全性;
改进了类型注解和重复注解;
引入流操作( Stream ):通过该操作可以实现对集合(Collection)的并行处理和函数式操作;
新增流操作 API(java.util.stream);
新增 Date / Time API;
新增 JavaScript 引擎 Nashorn;
类库新增 Base64 编码支持;
支持并行(Parallel)数组;
支持并发(Concurrency);
新的Java工具:Nashorn引擎: jjs 和 类依赖分析器 jdeps;
新增 Optional 类来解决空指针异常;
Java SE 7 (2011 年 7 月 28 号)
代号Dolpbin。该版本是一个重大的更新,新增了诸多的功能。该版本的主要更新内容包括:
支持动态语言;
支持钻石型语法;
null值的自动处理;
压缩了 64 比特的指针;
引入Java NIO.2开发包;
支持try with resources;
在一个语句块中捕获多种异常;
在创建泛型对象时应用类型推断;
switch语句块中允许以字符串作为分支条件;
对 elliptic curve cryptography 算法程序库档次的支持;
Timsort 被用来排序对象的集合和数组,取代 merge sort;
数值类型可以用二进制字符串表示,并且可以在字符串表示中添加下划线;
增强了对新网络通信协议(包括 SCTP 和 Sockets Direct Protocol )的程序库档次的支持;
Upstream 对 XML 和 Unicode 的更新;
Java SE 6 (2006 年 12 月 11 号)
代号 Mustang。从这个版本开始,逐渐减弱对 windows 9.x 版本的支持力度。该版本的主要更新内容包括:
支持脚本语言;
引入 JDBC 4.0 API;
引入 Java Compiler API:允许 Java 程序以写程序的方式选择和调用 Java 编译器的 API;
可插拔注解;
增加对 Native PKI(Public Key Infrastructure)、Java GSS(Generic Security Service)、Kerberos 和 LDAP(Lightweight Directory Access Protocol) 的支持;
继承 Web Services;
通过 JAX-WS 改善网络服务支持;
将 JAXB 升级到版本 2.0:包括 StAX解析器的集成;
支持 pluggable annotations;
许多 GUI 支持的改善,比如 SwingWorker 在 API 中的集成、表格排序和筛选以及真正的 Swing 双缓冲;
J2SE 5.0 (2004年 9 月 30 号)
代号 Tiger。该版本的主要更新内容包括:
引入泛型;
增强循环,可以使用迭代方式;
自动封装与解封装:基本的数据类型(如 int )和基本的的封装器类型(如 Integer )之间能够自动转换;
引入枚举( Enumerations ):以 enum 关键字创造出一种类型安全、有排序值的集合(如 Day.MONDAY、 Day.TUESDAY 等);
支持可变长度参数;
支持静态引入;
支持中继数据(Metadata):也称作注释,让语言结构能够用额外的数据标记;
引入 Instrumentation;
自动产生 stub 给 RMI 对象;
Swing 增加新的接口外观 synth;
用 Scanner 类别来解析来自各式各样的输入和缓冲;
支持Unicode 4.0;
J2SE 1.4 (2002 年 2 月 6 号)
代号 Merlin,这是 Java 平台在 JCP(Java Community Process) 下基于 JSR 59 规范开发的第一个版本。该版本的主要更新内容包括:
新增 assert 关键字;
新增模仿 Perl 正则表达式的 Java 正则表达式;
新增 Exception Chaining (异常链)机制,允许一个异常封装最初的低级异常;
添加对网络协议 IPv6 的支持;
新增 nio(java.nio),意即非阻塞式的 I/O(non-blocking I/O)。由于 nio 是不同于以往 I/O 的一种新的 API,因此也被称作 New I/O;
新增日志 API(java.util.logging);
新增图像 I/O API,用于支持类似于 JPEG、PNG 等格式的图像的读写操作;
集成 XML 解析器和 XSLT 处理器(JAXP);
集成安全和加密扩充组件(JCE, JSSE, JAAS);
内置 Java Web Start 软件,使你可以方便地从 Web 下载和运行 Java 应用程序;
新增配置参数 API(java.util.prefs),它允许应用程序存储并获取用户和系统首选项和配置数据;
Java 打印服务;
引入 JDBC 3.0 API;
J2SE 1.3 (2000 年 5 月 8 号)
代号 Kestrel。该版本的主要更新内容包括:
Jar 文件索引;
新增复合代理类(Synthetic proxy classes);
包含了HotSpot JVM(HotSpot JVM 第一次被发布是在 1999 年 4 月,名为 J2SE 1.2 JVM);
改进 RMI(Java remote method’s invocation)对 CORBA 的兼容性;
JNDI(Java Naming and Directory Interface / Java 命名和目录接口)包含在主程序库中(先前为扩充组件的形式);
添加 JPDA(Java Platform Debugger Architecture / Java 平台调试器体系),为调试 Java 代码提供了统一的 API;
添加 JavaSound API(javax.sound.midi 和 javax.sound.sampled),提供对语音处理的支持。该平台以前的版本只有有限的音频支持,只能对音频片段进行基本播放。在此新版本中,Java 2 平台定义了一系列标准类和接口,用于低级音频支持;
J2SE 1.2 (1998 年 12 月 4 号)
代号 Playground。从这个版本开始到 J2SE 5.0 的版本都改名为 Java 2,而版本名也被区分为三个:J2SE (Java 2 Platform,Standard Edition)、J2EE (Java 2 Platform,Enterprise Edition)、J2ME(Java 2 Platform,Micro Edition)。
该版本的主要更新内容包括:
引入 Java 插件;
引入集合(Collection)框架;
引入 JIT(Just In Time)编译器;
引入 JFC(Java Foundation Classes),包括 Swing 1.0、拖放和 Java 2D 类库;
引入对打包的 Java 文件进行数字签名;
引入控制授权访问系统资源的策略工具;
对字符串常量做内存映射;
在 Applet 中添加声音支持;
在 JDBC 中引入可滚动结果集、BLOB、CLOB、批量更新和用户自定义类型;
新增关键字 strictfp(strict float point);
添加可与 CORBA 协同交互的 Java IDL;
JDK 1.1 (1997 年 2 月 19 号)
该版本的主要更新内容包括:
引入 JDBC (Java Database Connectivity);
引入内部类 (Inner Classes);
引入 Java Beans;
引入 RMI (Remote Method Invocation);
添加只支持内省(Introspection),但不允许在运行时改动的Java反射机制;
对 AWT(java.awt) 事件模型进行大范围的改进;
支持 Internationalization 和 Unicode;
JDK 1.0 (1996 年 1 月 23 号)
代号 Oak。第一个真正稳定的版本是 JDK 1.0.2,也称作 Java 1。
JDK Alpha 和 Beta (1995 年)
1995 年公开发行了 Alpha 和 Beta 版本的JDK,其中包含的 API(Application Programming Interface) 和 ABI(Application Binary Interface) 都不是特别稳定。Sun 提供的 Java Web 浏览器当时被称为 WebRunner (后来改叫 HotJava,1999 年停止维护)。
参考:
http://javapapers.com/core-java/java-features-and-history/
https://zh.wikipedia.org/wiki/Java_%E7%89%88%E6%9C%AC%E6%AD%B7%E5%8F%B2
http://www.oracle.com/technetwork/java/javase/8-whats-new-2157071.html
本文作者: sylan215
本文地址: http://www.sylan215.com/
版权声明: 本文首发于公众号「sylan215」,可以随意转载,但必须在明确位置注明出处!