天天看点

Java版本历史和特性介绍

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」,可以随意转载,但必须在明确位置注明出处!