2021年9月14日Java 17发布,是继Java 8、Java 11后的第三个LTS版本,也是Java 8 后Oracle第一次宣布可以免费商用的版本,总体更新并不大,主要是下面14个特性变化:
306:Restore Always-Strict Floating-Point Semantics | 恢复始终执行严格模式的浮点定义 |
356:Enhanced Pseudo-Random Number Generators | 增强型伪随机数生成器 |
382:New macOS Rendering Pipeline | 新的 macOS 渲染管道 |
391:macOS/AArch64 Port | macOS AArch64 端口 |
398:Deprecate the Applet API for Removal | 弃用 Applet API |
403:Strongly Encapsulate JDK Internals | JDK 内部强封装 |
406:Pattern Matching for switch (Preview) | 为 switch 支持模式匹配 |
407:Remove RMI Activation | 移除 RMI 激活 |
409:Sealed Classes | 密封类 |
410:Remove the Experimental AOT and JIT Compiler | 移除实验性的 AOT 和 JIT 编译器 |
411:Deprecate the Security Manager for Removal | 弃用安全管理器 |
412:Foreign Function & Memory API (Incubator) | 外部函数和内存 API(孵化中) |
414:Vector API (Second Incubator) | 矢量 API(二次孵化中) |
415:Context-Specific Deserialization Filters | 上下文特定反序列化过滤器 |
性能与之前比,也有提升。基于 OptaPlanner 用例,这些基准测试表明:
- 对于 G1GC(默认),Java 17 比 Java 11 快 8.66%,比 Java 16 快 2.41%
- 对于 ParallelGC,Java 17 比 Java 11 快 6.54%,比 Java 16 快 0.37%
- Parallel GC 比 G1 GC 快 16.39%
如下图,作为LTS版本,Java 17 维护到2029年 9月份,未来,Spring 6 将要采用Java 17。目前大部分公司还在用的Java 8, 维护到2030年12月份。
2021年12月,Spring Native 0.11发布。随着AOT和Native模式成为Spring Boot 3和Spring Framework 6的主要主题,这些特性的质量、可维护性和易用性将达到一个新的水平。Spring Boot的Native模式计划于2022年底全面启用。
2021年12月,Spring Boot 2.6.1 正式发布,2.5.0 成最低支持版本,Spring Boot 2.4.x 及之前的版本结束免费支持,意味着不再提供免费的安全更新和错误修复了,如果有需要,Spring Boot 2.2.x+ 这些还是可以提供商业支持的。而Spring Boot 2.1.x 及之前的版本,不再提供任何支持了。
同时,Spring Cloud 正式发布了2021.0.0版本,也是第一个支持 Spring Boot 2.6.x 的版本。 Spring Cloud 目前维护着三条版本主线:
- Spring Cloud 2021.x
- Spring Cloud 2020.x
- Spring Cloud Hoxton.x