◉◡◉ 您好,欢迎到访伊成个人站!

JDK各个版本新特性小结

截止到今天(2020-5-30)JDK已经发布到了 JDK14。

在2017年8月,JCP执行委员会提出将Java的发布频率改为每六个月一次,新的发布周期严格遵循时间点,将在每年的3月份和9月份发布。

JDK 14已经于2020年3月17日如期发布。下面介绍各个版本的新特性,后续随着JDK新版本的更新迭代,本文会持续更新。

JDK从1.5版本开始,在官方的正式文档与宣传资料中已经不再使用类似JDK1.5的名称,只有程序员内部

使用的开发版本号(DeveloperVersion,例如java-version的输出)才继续沿用1.5、1.6、1.7和1.8的版本号,

而公开版本号(Product Version)则改为JDK5、JDK6、JDK7和JDK8的命名方式。

JDK 5 新特性

1.自动装箱、拆箱

2.静态导入(static import)

3.增强for循环(for-each)

4.可变参数

5.枚举(enmu)

6.泛型

7.元数据

8.线程并发库(JUC)


JDK 6 新特性

1.AWT中新增的两个类Desktop和SystemTray

2.使用JAXB2来实现对象与XML之间的映射

  1. 新增处理DOM和SAX之外又一种处理XML文档的API:STAX

  2. 使用Compiler API动态编译java源文件

  3. 轻量级Http Server API

  4. 插入式注解处理API(用于处理Annotations)

  5. 用Console开发控制台程序

  6. 对ruby、groovy、javascript等脚本语言的支持

  7. Common Annotations


JDK 7 新特性

  1. 对Java集合(Collections)的增强支持

  2. 在switch中可用String

  3. 数值可加下划线(eg:int one_million=123_1)

  4. 支持二进制文字(int binary=0b1001_1001)

  5. 简化可变参数方法的调用

  6. 自动资源管理

  7. 类型推断

  8. catch 多个类型异常


JDK 8 新特性

  1. Stream函数式操作流元素集合

  2. Lambda表达式

  3. 新的日期时间 API(Java Date/time API)

  4. 新增接口:默认方法与静态方法

  5. Nashorm(Rhino的接替者,轻量级高性能的javascript运行环境)

  6. Accumlators多线程lock

  7. 方法引用,与Lambda表达式联合使用

  8. 引入重复注解和类型注解

  9. 类型注解

  10. 新增base64加解密API

  11. 数组并行(parallel)操作

  12. JVM的permGen空间移除,被Metaspace元空间取代


JDK 9 新特性

  1. 目录结构

  2. 模块化系统

  3. jshell

  4. 多版本兼容JAR

  5. 接口的私有方法

  6. 改进try-with-resourcs

  7. 改进砖石操作符

  8. 限制使用单独下划线标识符

  9. String存储结构变更

  10. 快速创建只读结合

  11. 增强Stream API

  12. 改进Optional 类

  13. 多分辨率图像 API

  14. 全新 HTTP客服端API

  15. 智能JAVA 编译工具

  16. 统一JVM 日志系统

  17. javadoc 的 HTML5 支持

  18. java 动态编译


JDK 10 新特性

  1. 局部变量类型推断

  2. 将JDK多存储库合并为单储存库

  3. 垃圾回收接口

  4. 并行Full GC 的G1

  5. 应用数据共享

  6. 线程局部管控

  7. 移除Native-Header Generation Tool (javah)

  8. Unicode 标签扩展

  9. 备用内存设备上分配堆内存

  10. 基于实验JAVA 的JIT 编译器

  11. Root 证书

  12. 基于时间的版本控制


JDK 11 新特性

  1. 字符串加强

  2. HttClient Api

  3. 用于 Lambda 参数的局部变量语法

  4. ZGC (并发回收的策略)


JDK 12 新特性

  1. Switch Expressions

  2. Shenandoah GC (GC 算法)


JDK 13 新特性

  1. switch优化更新

  2. 文本块升级

  3. 重新实现旧版套接字API

  4. 核心库/java.util中:I18N

  5. 增加ZGC以将未使用的堆内存返回给操作系统


JDK 14 新特性

  1. switch优化变更为最终版

  2. 垃圾回收相

  • 删除cms垃圾收集器
  • 弃用 ParallelScavenge + SerialOld GC 的垃圾回收算法组合
  • 将 zgc 垃圾回收器移植到 macOS 和 windows 平台
  1. instanceof的模式匹配(预览版)

  2. 删除了安全库java.security.acl API

  3. 货币格式(优化)

  4. 友好的空指针异常

  5. 外部存储器API(孵化)

本文会持续更新…

支付宝打赏 微信打赏