Java5
泛型 (Generics)
增强循环(Enhanced for Loop)
自动封箱拆箱(Autoboxing/Unboxing )
枚举(Typesafe Enums)
可变参数 (Varargs)
静态导入(Static Import)
注解(Annotations)
新的线程模型和并发库(java.util.concurrent)
Java6
集合框架增强
Scripting. 可以让其他语言在java平台上运行
支持JDBC4.0规范
Java8
lambada表达式(Lambda Expressions)
方法引用(Method references)
默认方法(Default methods)
重复注解(Repeating Annotations)
类型注解(Type Annotation)
类型推断增强
方法参数反射(Method Parameter Reflection)
Stream API
HashMap改进
Date Time API
java.util 包下的改进
并行数组排序
标准的Base64编解码
支持无符号运算
java.util.concurrent 包下增加了新的类和方法
JVM-HotSpot
删除了 永久代(PermGen)
方法调用的字节码指令支持默认方法
Java9
java模块系统 (Java Platform Module System)
java模块系统 (Java Platform Module System)
java shell,交互式命令行控制台
在private instance methods方法上可以使用@SafeVarargs注解
diamond语法与匿名内部类结合使用
下划线_不能单独作为变量名使用
支持私有接口方法(您可以使用diamond语法与匿名内部类结合使用)
Javadoc
JVM
properties文件支持UTF-8编码,之前只支持ISO-8859-1
支持Unicode 8.0,在JDK8中是Unicode 6.2
Java10
局部变量类型推断(Local-Variable Type Inference)
Optional类添加了新的方法orElseThrow。相比于已经存在的get方法,这个方法更推荐使用。
Java11
支持Unicode 10.0,在jdk10中是8.0
标准化HTTP Client
编译器线程的延迟分配。添加了新的命令-XX:+UseDynamicNumberOfCompilerThreads动态控制编译器线程的数量。
新的垃圾收集器—ZGC。一种可伸缩的低延迟垃圾收集器(实验性)
Epsilon。一款新的实验性无操作垃圾收集器。Epsilon GC 只负责内存分配,不实现任何内存回收机制。这对于性能测试非常有用,可用于与其他GC对比成本和收益。
Lambda参数的局部变量语法