文章目录
前言
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
其他
参考
-
JDK5 新特性:https://blog.csdn.net/weixin_40926603/article/details/84970282
-
JDK6 新特性:https://blog.csdn.net/weixin_40926603/article/details/84970283
-
jdk1.7新特性详解:https://blog.csdn.net/heartroll/article/details/78455045
-
Java 8 新特性:https://www.runoob.com/java/java8-new-features.html
-
Java 8 Lambda 表达式:https://www.runoob.com/java/java8-lambda-expressions.html
Java8 lambda表达式10个示例:https://www.cnblogs.com/coprince/p/8692972.htm -
Java 8 方法引用
Java 8 方法引用: https://www.runoob.com/java/java8-new-features.html
-
-
Java 9 新特性:https://www.runoob.com/java/java9-new-features.html
-
JDK12新特性详解:https://my.oschina.net/mdxlcj/blog/3102739
-
JDK13新特性详解:https://my.oschina.net/mdxlcj/blog/3107021
jdk9、jdk10、jdk11、jdk12、jdk13新特性:https://blog.csdn.net/jlq_diligence/article/details/102775215