Java17,有史以来最快 JDK
共 4287字,需浏览 9分钟
·
2022-01-11 17:46
点击上方“Java技术江湖”,选择“设为星标”
回复”666“获取全网最热的Java核心知识点整理
都说Java 8 是YYDS,那你注意到 Java 17 已经正式发布了吗?目前Java 18 也已经进入早期开发阶段。
Java 官方团队已在OpenJDK邮件中确认,8月6号发布的 JDK 17 build 35 可正式作为GA版本使用,期间没有报告任何P1错误。
Java 17的14 个 JEP,分别是:
306:恢复始终严格的浮点语义
356:增强型伪随机数发生器
382:新的 macOS 渲染管道
391:macOS/AArch64 端口
398:弃用即将删除的 Applet API
403:强封装JDK的内部API
406:Switch模式匹配(预览)
407:删除 RMI 激活
409:密封类
410:删除实验性 AOT 和 JIT 编译器
411:弃用即将删除安全管理器
412:外部函数和内存 API(孵化器)
414:Vector API(第二次进行特性孵化)
415:特定于上下文的反序列化过滤器
在这14个功能中,哪一个对你最实用。
3年后的首个 LTS版本
据Oracle Java SE支持路线图显示,Java 17 是自Java 11以来的首个长期支持版本。Oracle 还提议将 JDK LTS 发布的节奏从每三年一次改为每两年一次,并且每个LTS 版本的服务时间至少8年以上。Java 版本通常是6个月一更新,时间分别在3月和9月,而这些版本的支持时间基本在半年左右。
Java各个版本的生命周期
据Oralce官博透露,虽然6个月版本的使用人数在增长,但大部分组织及企业更倾向于把LTS版本用在生产环境中,从而得到更加稳定可靠的服务。这一点从Snyk发布的2021 Java 社区报告中也可以得到证实,虽然有 61.5% 的人在生产中使用 Java 11,但仍有一半的 Java 11 用户(目前使用最多的版本)在他们的生产堆栈中使用 Java 8。
除了上面提到是14个重大更新和更快的LTS服务节奏外,Java 17还有哪些亮点呢?
Oracle 推出 Free Java License
Oracle正在为行业提供免费的,领先的Oralce JDK,包括所有季度安全更新,并包含商业和生产用途。 新许可是“Oracle 免费条款和条件”(NFTC) 许可。此Oracle JDK许可证允许所有用户免费使用,甚至可以用于商业和生产用途。只要不收费,再分发是允许的。 开发人员和组织现在无需点击即可轻松下载、使用、共享和重新分发 Oracle JDK。 Oracle 将从Oracle JDK 17开始提供这些免费版本和更新,并在下一个 LTS 版本之后继续提供整整一年。以前的版本不受此更改的影响。 Oracle 将继续按照自 Java 9 以来的相同版本和时间表提供GPL下的Oracle OpenJDK 版本。
Java 17+(来自 Spring Framework 5.3.x 线中的 Java 8-17) Jakarta EE 9+(来自Spring框架5.3.x 线中的 Java EE 7-8)
JDK 11
openjdk 11.0.12 2021-07-20
OpenJDK Runtime Environment Temurin-11.0.12+7 (build 11.0.12+7)
OpenJDK 64-Bit Server VM Temurin-11.0.12+7 (build 11.0.12+7, mixed mode)
JDK 16
openjdk 16.0.2 2021-07-20
OpenJDK Runtime Environment (build 16.0.2+7-67)
OpenJDK 64-Bit Server VM (build 16.0.2+7-67, mixed mode, sharing)
JDK 17
openjdk 17 2021-09-14
OpenJDK Runtime Environment (build 17+35-2724)
OpenJDK 64-Bit Server VM (build 17+35-2724, mixed mode, sharing)
-XX:+UseG1GC 对于 G1GC,低延迟垃圾收集器(所有三个 JDK 中的默认值); -XX:+UseParallelGC 对于 ParallelGC,高吞吐量垃圾收集器。
每次运行都使用 OptaPlanner 解决 11 个规划问题,例如 员工排班、 学校时间表和云优化。每个规划问题运行 5 分钟。日志记录设置为INFO。基准测试以 30 秒的 JVM 预热(warm up)开始,随后丢弃。 解决规划问题不涉及IO(除了在启动期间加载输入的几毫秒)。单个CPU完全饱和。它不断地创建许多短期存在的对象,然后 GC 将它们收集起来。 基准衡量每秒计算的分数数量,越高越好。为测试计划规划的解决方案计算分数并非易事:它涉及许多计算,包括检查每个实体与每个其他实体之间的冲突。
平均而言,以 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%。
参考链接:
https://mail.openjdk.java.net/pipermail/jdk-dev/2021-September/006037.html
https://mail.openjdk.java.net/pipermail/jdk-dev/2021-September/006037.html
https://www.optaplanner.org/blog/2021/09/15/HowMuchFasterIsJava17.html
转自:不叫月红
链接:blog.csdn.net/mengyidan/article/details/120308102
Spring Boot + MyBatis + MySQL 实现读写分离!
阿里二面:main 方法可以继承吗?
Maven实战与原理分析(四):手把手带你搭建maven私有仓库
关注公众号【Java技术江湖】后回复“PDF”即可领取200+页的《Java工程师面试指南》
强烈推荐,几乎涵盖所有Java工程师必知必会的知识点,不管是复习还是面试,都很实用。