Java SE 8
2014-03-18发布
- JSR 335,JEP 126:Lambda项目[193]中提供的语言级匿名函数支持(官方称为 lambda 表达式,非官方亦称闭包);添加默认方法(虚拟扩展组件方法)[194][195][196] ,以允许在不破坏兼容性的情况下向现有接口中新增方法。Java社区中曾经有过针对是否要加入 lambda 表达式支持的辩论。稍后Sun公司宣布 lambda 表达式将会包含在Java中,并请社区协助改善该特性。支持lambda表达式使得针对流中元素的函数式操作成为可能,由此可以实现由 MapReduce 启发的函数式集合操作。默认方法允许API作者添加新的方法到现有接口上,而不会破坏旧的代码中。默认方法还使得多重继承的行为 (不是状态)成为可能,但默认方法的设计意图并非在此。
- JSR 223,JEP 174:Nashorn项目,一个 JavaScript 运行时,它允许开发人员在应用程序中嵌入 JavaScript 代码
- JSR 308,JEP 104:在 Java 类型上的注解[197]
- 无符号整数算术[198]
- JSR 337,JEP 120:重复注解[199]
- JSR 310,JEP 150:日期和时间 API[200],基于Joda-Time日期时间处理库的实现。
- JEP 178:静态链接 JNI 程序库[201]
- JEP 153:执行 JavaFX 应用程序(直接执行 JavaFX 的应用程序的 JAR 包)[202]
- JEP 122:移除了虚拟机内存管理中的永久世代[203]
Java SE 9
2017年9月21日发布
Java 9 应当对千兆级堆拥有更好的支持,同时能够更好地集成本机代码,且拥有新的垃圾收集器G1和能够自我调节的JVM
List.of(),Map.of().... 是从这个版本出现的、
Java SE 10
OpenJDK10于2018年3月20日发布
- 局部变量类型推断(老版本通过lombok也能实现)
Java SE 11
JDK 11 于2018年9月25日发布
- lambda参数的局部变量语法
参考资料: