Java版本历史

421 阅读2分钟

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参数的局部变量语法

参考资料:

  1. Java版本历史 - 维基百科,自由的百科全书 (wikipedia.org)