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移除永久代
参考资料
-
JDK 1.0.2 Java 1.0.2 locker Web resources
-
Wiki Java version history
-
Doug Lea Concurrency JSR-166 Interest Site