【JDK】JDK 5 到 13 新特性

【JDK】JDK 5 到 13 新特性

前言

JDK从1.5版本开始,在官方的正式文档与宣传资料中已经不再使用类似JDK1.5的名称,只有程序员内部使用的开发版本号(Developer Version,例如java-version的输出)才继续沿用1.5、1.6、1.7和1.8的版本号,而公开版本号(Product Version)则改为JDK5、JDK6、JDK7和JDK8的命名方式。

JDK5、JDK6、JDK7和JDK8 和 JDK 1.5、1.6、1.7和1.8是一样的,只是叫法不同。

该篇文章总结JDK 5、6、7、8、9的比较主要的新特性。还有非常多的新特性是没有在文章中提及的,有需要请查看参考链接。

LTS(Long-Term-Support)为长期支持版。

一、 JDK 5(2004-09-30)

  • 自动拆装箱
  • Foreach
  • 静态导入
  • 可变参数 Var args
  • 枚举
  • 格式化输出
  • 泛型
  • ProcessBuilder
  • 内省
  • 线程并发库(JUC)
  • 监控和管理虚拟机
  • 元数据(注解)

比较常用的有:自动装拆箱、Foreach、可变参数、格式化输出、泛型、内省、JUC、元数据

二、 JDK 6(2006-04)

详情请看:https://blog.csdn.net/weixin_40926603/article/details/84970283

三、 JDK 7(2011-07-28)

  • 二进制字面量
  • 数值字面量可加下划线
  • switch中可用String
  • 泛型简化(泛型实例化类型自动推断)
  • 资源的自动管理(try-with-resources 自动关流 )
  • 多异常类型捕获(Catch多个异常)

以上几个都比较常用。

四、 JDK 8(2014-03-18)LTS

  • Lambda 表达式(也称闭包:Lambda 允许把函数作为一个方法的参数)
  • 方法引用
  • 默认方法
  • 新工具(Nashorn引擎 jjs、 类依赖分析器jdeps)
  • Stream API
  • Date Time API(加强对日期与时间的处理)
  • Optional 类

Lambda 用的比较多,可以简化很多代码。

五、 JDK 9(2017-09-21)

详情请看:https://www.runoob.com/java/java9-new-features.html

六、 JDK 10(2018-03-21)

  • 局部变量类型推断

局部变量类型推断,局部变量直接var声明就行,这个有意思。

更多请看:https://www.cnblogs.com/peter1018/p/9234490.html

七、 JDK 11(2018-09-25)LTS

  • 字符串加强
  • Lambda 参数的局部变量语法

更多请看:https://www.jianshu.com/p/84a6050c5391

八、 JDK 12(2019-03-19)

JDK12新特性详解:https://my.oschina.net/mdxlcj/blog/3102739

九、 JDK 13(2019-09-17)

JDK13新特性详解:https://my.oschina.net/mdxlcj/blog/3107021

其他

参考

jdk9、jdk10、jdk11、jdk12、jdk13新特性:https://blog.csdn.net/jlq_diligence/article/details/102775215