Java17,有史以来最快 JDK!但Java8 YYDS!
共 4490字,需浏览 9分钟
·
2021-10-03 20:15
往期热门文章:
1、Spring Boot巧用 @Async 提升API接口并发能力!NB! 2、再见MybatisPlus,阿里推出新ORM框架! 3、这个 MySQL Bug 99% 的人会踩坑! 4、一个Bug能有多大影响:亏损30亿、致6人死亡、甚至差点毁灭世界... 5、推荐几个9月爆火的 GitHub 电商项目
转自:不叫月红
链接:
blog.csdn.net/mengyidan/article/details/120308102
都说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正在为行业提供免费的,领先的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%。
往期热门文章:
1、《历史文章分类导读列表!精选优秀博文都在这里了!》 2、用 Java 爬小姐姐图片,这个厉害了。。。 3、消息幂等(去重)通用解决方案,真顶! 4、从MySQL 5.6升级到8.0,Facebook付出了惨痛代价…… 5、当 Transactional 碰到锁,有个大坑! 6、横空出世,比Visio快10倍的画图工具来了。 7、惊呆了,Spring中竟然有12种定义bean的方法 8、代码写的垃圾被嫌弃? 9、牛逼!SpringBoot+Vue企业级支付系统!附源码! 10、你真的会写for循环吗?来看看这些常见的for循环优化方式