JDK8版本之后与JDK8的对比

本文详细比较了Java从8到21版本的更新,涵盖模块系统、新语法、垃圾回收器、API增强、加密协议等核心特性,强调了版本选择在项目初期的重要性。
摘要由CSDN通过智能技术生成

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

JDK8版本之后与JDK8的对比@TOC


前言

`

JAVA经过这么多年的迭代,已经蜕变成一个巨大的生态,下面我们就对比一下,从java8 到 21的变化与升级。


提示:以下是本篇文章正文内容,下面案例可供参考

一、JDK9 新特性(2017-9)

  • 模块系统(Project Jigsaw)
  • 集合工厂方法(List.of, Set.of, Map.of)
  • 接口内的私有方法
  • Optional类的改进
  • 多版本兼容JAR包
  • jshell 工具
  • try-with-resources 的改进
  • Stram API 的增强
  • 默认垃圾收集器改为 G1
  • 支持HTTP/2 WebSocket Api

二、JDK10 新特性(2018-3)

  • 局部变量类型推断(var)
  • 不可变集合的改进
  • 垃圾回收器G1的并行全垃圾回收
  • 线程本地握手
  • Optional 新方法: orElseThrow
  • 类数据共享
  • Unicode语言标签扩展
  • 根证书

三、JDK11 新特性(2018-9)

  • 新的字符串处理方法
  • 变量语法用于Lambda 参数
  • 新的HTTP Client API (HTTP/1.1、HTTP/2和WebSockets 支持)
  • 单一 Java 文件的直接运行
  • ZGC:可伸缩的低延迟垃圾收集器
  • TLS 1.3支持
  • Flight Recorder
  • Stream, Optional, 集合 API的增强

四、JDK12 新特性(2019-3)

  • switch 表达式扩展(可返回值)
  • 对复杂数字的格式化(NumberFormat)
  • Files.mismatch方法
  • Teeing 收集器
  • 技能 Unicode11
  • Shenandoah 垃圾收集器
  • G1 收集器的优化

五、JDK13 新特性(2019-9)

  • switch 表达式增加yield关键字
  • 文本块(Text Blocks)
  • Socket API 重构
  • FileSystems.newFileSystem 方法
  • ZGC 优化

六、JDK14 新特性(2020-3)

  • instanceof 模式匹配
  • Record 类型
  • switch 表达式标准化
  • NullPointerExceptions 提示信息改进
  • 删除CMS 垃圾回收器

七、JDK15 新特性(2020-9)

  • EdDSA数字签名算法
  • 密封类(Sealed Classes)
  • 隐藏类(Hidden Classes)
  • Nashorn JavaScript 引擎移除

八、JDK16 新特性(2021-3)

  • JDK 源代码 中 C++14 特性的支持
  • ZGC 性能优化
  • Unix 或套接字通道
  • 弹性元空间
  • jpackage 工具

九、JDK17 新特性(2021-9)

  • 免费 Java 许可
  • 移除实验性 AOT 和JIT 编译器
  • 浮点去处始终执行严格模式
  • 密封类正式引入
  • 统一日志刷新

十、JDK18 新特性(2022-3)

  • 默认 UTF-8 编码
  • 简单 HTTP 服务器
  • Java API 文档中的代码片段
  • 核心反射的重新实现
  • Vector API (第三次孵化)
  • 自定义地址解析 SPI
  • 外部函数与内在API (第二次孵化)
  • switch 模式匹配 (第二次预览)

十一、JDK19 新特性(2022-9)

  • 记录模式 (预览)
  • Linux/RISC-V 支持
  • 外部 函数与内存 API(预览)
  • 虚拟线程 (预览)
  • Vector API (第四次孵化)
  • switch 模式匹配(第三次预览)

十二、JDK20 新特性(2023-3)

  • instanceof 模式匹配增强
  • 密封类(Sealed Classes)
  • 记录 (Records)增强
  • 文本块(Text Blocks)改良
  • switch 表达式改进
  • 新的垃圾回收算法 (ZGC)
  • 预览特性可能包含虚拟纯种(Virtual Threads)、结构化并发(Structured Concurrency)

十三、JDK21 新特性(2023-9)

  • 顺序集合(Sequenced Collections)
  • 分代ZGC 改进
  • 记录模式强化
  • switch 中的模式匹配增强
  • 引入虚拟线程
  • 弃用Windows 32位 x86 移植
  • 动态加载代理
  • Curve25519和Curve448密钥协议
  • 预览特性包括字符串模板、外部函数和内存API(第三次预览)等

总结

以往在一直用java 8,但现在上从 8-21 所以升级的功能点越来越诱人,在初始建立项目的时候斟酌版本的使用也变得重要

  • 18
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值