Java JDK 各版本特性

2018/12/03

JDK

JCP(Java Communtiy Process Program)Java技术官方组织,负责管理Java和接受制定各种JSR规范。

JSR(Java Specification Request)规范是Java技术的标准,JSR规定了Java体系有哪些技术。往往有非常多的JSR规范,最终由JCP投票决定,把哪些加入JDK正式版本中。

本文主要梳理从JDK 1.0 到 Java SE 8 各版本的新特性。(截止2019年9月17日,JDK已发布到了Java SE 13版本)

  • JDK 1.0 (January 23, 1996)
  • JDK 1.1 (February 19, 1996)
  • J2SE 1.2 (December 8, 1998)
  • J2SE 1.3 (May 8, 2000)
  • J2SE 1.4 (February 6, 2002)
  • J2SE 5.0 (September 30, 2004)
  • Java SE 6 (December 11, 2006)
  • Java SE 7 (July 28, 2011)
  • Java SE 8 (March 18, 2014)

JDK 1.0

  • 线程类 Thread、Runnable
  • 字符串 String、StringBuffer
  • IO包 InputStream、OutputStream
  • util包 Hashtable
  • net包 ServerSocket、Socket
  • JVM Sun Classic VM 默认虚拟机,解释执行方式

JDK 1.1

  • JDBC 1.0
  • 反射 reflecttion
  • 内部类 Inner Class
  • Java Beans
  • JVM 开始支持 JIT 编译执行

J2SE 1.2

  • 集合类 Collections
  • JVM 内置多款 JIT 编译器

J2SE 1.3

  • JNDI
  • JVM HotSpot 成为默认虚拟机

J2SE 1.4

  • NIO Non-blocking I/O 非阻塞I/O 基于 JSR 51
  • JDBC 2.0 新增DataSource数据源

J2SE 5.0

  • 泛型 Generics
  • 元数据/注解 annotations
  • 装箱/拆箱
  • forEach
  • 枚举 Enum
  • 可变参数 varargs
  • 并发包 锁、多线程 JSR 166
  • Java 内存模型

Java SE 6

  • JDBC 4.0 基于 JSR 221
  • Java Compiler API 动态编译Java源文件 JSR 199
  • 支持脚本语言(动态语言) JSR 223
  • JVM synchronized关键字优化、压缩指针

Java SE 7

  • Java语言改变 Switch语句支持String、catch多个类型异常、try-with-resorces资源自动释放
  • NIO 2.0 JSR 203
  • JUC包 引入Fork/Join开始支持并行计算
  • net包 新增支持SCTP协议
  • 泛型类型推断
  • JVM支持动态语言 invokedynamic指令、压缩指针技术

Java SE 8

  • Lambda表达式 JSR 335
  • 函数式接口
  • Stream API
  • 接口支持默认方法静态方法 JSR 335
  • Optional类
  • 方法引用 ::
  • 增强泛型类型推断
  • JVM移除永久代

参考资料

  1. JDK 1.0.2 Java 1.0.2 locker Web resources

  2. Wiki Java version history

  3. Doug Lea Concurrency JSR-166 Interest Site

Post Directory