从Java 1.8到Java 21,发生了很多变化和改进

从Java 1.8到Java 21,发生了很多变化和改进。以下是一些主要的变化和需要注意的事项:

  1. 模块化系统 (JEP 261):

    • 在Java 9中引入,这改变了Java的打包和部署方式。
    • 使用module-info.java来定义模块和其依赖。
  2. 接口中的私有方法 (JEP 185):

    • 从Java 9开始,接口中可以定义私有方法。
  3. 局部变量类型推断 (JEP 286):

    • 使用var关键字进行局部变量类型推断。
  4. HTTP/2 客户端 (JEP 110):

    • 在Java 11中引入了一个新的HTTP客户端API。
  5. 新的字符串方法:

    • isBlank()strip()stripLeading()stripTrailing()等。
  6. 集合工厂方法:

    • 例如List.of()Set.of()Map.of()等。
  7. Stream API的改进:

    • takeWhile()dropWhile()等方法。
  8. Optional的改进:

    • stream()orElseThrow()等方法。
  9. 弃用的APIs:

    • Nashorn JavaScript Engine在Java 11中被弃用。
    • java.util.Date的部分方法如after()before()在Java 9中被弃用。
  10. 飞行记录器(JFR, Java Flight Recorder) (JEP 328):

  • 从Java 11开始,JFR已经开源并作为OpenJDK的一部分。
  1. ZGC (JEP 333):
  • 一个可伸缩的、低延迟的垃圾收集器,从Java 11开始可用。
  1. 新的文件API (JEP 320):
  • 提供对文件系统的访问,可以替代老旧的java.io.File API。
  1. Switch表达式的改进 (JEP 361):
  • 从Java 14开始,引入了新的switch表达式语法,支持箭头操作和"yield"关键字。
  1. Records (JEP 395):
  • 从Java 16开始,可以使用records来创建不可变的数据载体,减少样板代码。
  1. 模式匹配 (JEP 406):
  • 从Java 17开始,可以使用模式匹配来简化代码,特别是在switch语句和表达式中。
  1. 外部函数和内存API (JEP 412):
  • 从Java 19开始,这个API允许Java代码与本机代码进行更深入的交互。
  1. 其他语言特性:
  • 如文本块、新的包导出/打开语法等。
  1. 安全性的改进:
  • 如对TLS 1.3的支持、加密算法的更新等。
  1. 工具和库的更新:
  • 如JDK内部的工具如javadoc、jlink、jpackage等都得到了更新和改进。
  1. 移除的特性:
  • 例如,Java的浏览器插件在Java 11后被移除。
  1. 性能改进:
  • 每个版本通常都会带来一些性能上的优化和改进。

请注意,上述列表并不详尽,但应该涵盖了主要的变化和改进。在从Java 1.8迁移到Java 21时,建议查阅官方文档以获取更详细的信息和指南。

  • 9
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值