上一篇:为什么国内 996 干不过国外的 955呢?

来源:http://ykvr4.cn/seFuJ

JDK/Java 16 已于今年 3 月份正式 GA,这是一个短期维护版本,仅有 6 个月的技术支持。下一个版本 JDK/Java 17 计划于今年 9 月 14 日发布,这是一个长期支持(LTS)版本,预计 Oracle 将提供数年的扩展支持。

JDK 17 现在已经进入了第二个也是最后一个候选版本阶段(RC),目前最新版本是 Build 35。

按 InfoWorld 所述,OpenJDK JDK 17 的部分功能包括有:

  • Context-specific 反序列化过滤器允许应用程序通过调用 JVM-wide filter factory 为每个序列化操作选择过滤器,来配置 context-specific  和 dynamically selected 的反序列化过滤器。

  • 随着 always-strict 浮点语义的恢复,浮点运算将保持一致的严格;而不是同时具有严格的浮点语义 ( strictfp) 和有着微妙出入的默认浮点语义。这就为语言和 VM 恢复了原始的浮点语义,与 Java Standard Edition 1.2 中引入严格和默认浮点模式之前的语义相匹配。

  • 弃用 Security Manager,准备在未来版本中移除。追溯到 Java 1.0,Security Manager 一直是保护客户端 Java 代码的主要手段,很少用于保护服务器端代码。该提案的一个目标是评估是否需要新的 API 或机制来解决使用 Security Manager 的特定狭窄用例,例如阻塞System::exit。计划要求弃用 Security Manager 以与旧 Applet API 一起删除,该 API 也计划在 JDK 17 中弃用。

  • switch模式匹配预览版扩展了 Java 中的模式语言,允许switch表达式和语句可以针对多个模式进行测试,每个模式都有特定的操作。这使得复杂的面向数据的查询能够简洁而安全地表达。此功能的目标包括:通过使模式出现在案例标签中,来扩展switch表达式和语句的表现力和应用,在需要时放宽switch的 historical null-hostility,并引入两种模式:guarded ``patterns,允许用任意的布尔表达式来完善模式匹配逻辑,以及parenthesized patterns,解决了一些解析歧义。在 JDK 16 中,instanceof运算符被扩展为采用类型模式并执行模式匹配。提议的适度扩展允许简化熟悉的 instanceof-and-cast 习语。

  • JDK 内部的强封装,除了sun.misc.Unsafe等关键的内部 API 外,用户将不再可能通过单个命令行选项来 relax 对内部元素的强封装,这在 JDK 9 到 JDK 16 中是可行的。该计划的目标包括提高 JDK 的安全性和可维护性,并鼓励开发人员从内部元素迁移到标准 API。

  • 删除远程方法调用 (RMI) 激活机制,同时保留 RMI 的其余部分。RMI 激活机制已过时和废弃,在 JDK 15 中不推荐使用。

  • 在外部函数和 memory API 引入了一个孵化器阶段,允许 Java 程序与 Java 运行时之外的代码和数据进行互操作。API 计划的目标包括易用性、性能、通用性和安全性。

  • 与平台无关的矢量 API 作为孵化 API 集成到 JDK 16 中,将在 JDK 17 中再次孵化,提供一种机制来表达矢量计算,这些计算在运行时可靠地编译为支持的 CPU 架构上的最佳矢量指令。这比等效的标量计算获得了更好的性能。在 JDK 17 中,向量 API 已针对性能和实现进行了增强,包括在字节向量与布尔数组之间进行转换的增强功能。

  • 密封类和接口限制哪些其他类或接口可以扩展或实现它们。该提案的目标包括允许类或接口的作者控制哪些代码负责实现它,提供比访问修饰符更具声明性的方式来限制超类的使用,并通过为模式的详尽分析提供基础来支持模式匹配的未来方向。

  • 删除实验性 AOT 和 JIT 编译器,它们几乎没有使用,但需要大量维护工作。该计划要求维护 Java 级别的 JVM 编译器接口,以便开发人员可以继续使用外部构建的编译器版本进行 JIT 编译。

  • 将 JDK 移植到 MacOS/AArch64 以响应 Apple 将其 Macintosh 计算机从 x64 转换到 AArch64 的计划。针对 MacOS/AArch64 的更改有可能破坏现有的 Linux/AArch64、Windows/AArch64 和 MacOS/x64 port,但这种风险可通过预集成测试来降低。

  • 弃用 Applet API 以进行删除。这个 API 本质上是无关紧要的,因为所有 Web 浏览器供应商要么已经取消了对 Java 浏览器插件的支持,要么已经宣布了这样做的计划。Applet API 之前在 2017 年 9 月的 Java 9 中已被弃用,但并未删除。

  • 用于 MacOS 的新渲染管道,使用 Apple Metal API 作为使用已弃用 OpenGL API 的现有管道的替代方案。该提议旨在为使用 MacOS Metal 框架的 Java 2D API 提供一条功能齐全的渲染管道,为苹果从未来版本的 MacOS 中删除 OpenGL API 做好准备。该管道旨在功能上与现有的 OpenGL 管道相当,在某些应用程序和基准测试中具有相同或更好的性能。将创建适合当前 Java 2D 模型的干净架构。管道将与 OpenGL 管道共存,直到被淘汰。本提案的目的并不是添加任何新的 Java 或 JDK API。

  • 增强的伪随机数生成器将为伪随机数生成器(PRNG)提供新的接口类型和实现,包括可跳转的 PRNG 和额外的一类可拆分 PRNG 算法 (LXM)。新接口RandomGenerator将为所有现有的和新的 PRNG 提供统一的 API;将提供四个专门的 RandomGenerator 接口。该计划的动机是关注 Java 中伪随机数生成领域的多个改进领域。这项工作不需要提供许多其他 PRNG 算法的实现。但是已经添加了三种常用算法,这些算法已经广泛部署在其他编程语言环境中。该计划的目标包括:

    • 使在应用程序中交替使用各种 PRNG 算法变得更容易。

    • 改进了对基于流的编程的支持,提供了 PRNG 对象流。

    • 消除现有 PRNG 类中的代码重复。

    • 保留类java.util.Random的现有行为。

JDK 17 等 LTS 版本每三年发布一次,上一个LTS 版本 JDK 11 于 2018 年 9 月发布。

详情可查看:https://jdk.java.net/17/

感谢您的阅读,也欢迎您发表关于这篇文章的任何建议,关注我,技术不迷茫!小编到你上高速。

· END ·

最后,关注公众号互联网架构师,在后台回复:2T,可以获取我整理的 Java 系列面试题和答案,非常齐全。

正文结束

推荐阅读 ↓↓↓

1.不认命,从10年流水线工人,到谷歌上班的程序媛,一位湖南妹子的励志故事

2.如何才能成为优秀的架构师?

3.从零开始搭建创业公司后台技术栈

4.程序员一般可以从什么平台接私活?

5.37岁程序员被裁,120天没找到工作,无奈去小公司,结果懵了...

6.IntelliJ IDEA 2019.3 首个最新访问版本发布,新特性抢先看

7.这封“领导痛批95后下属”的邮件,句句扎心!

8.15张图看懂瞎忙和高效的区别!

JDK17 带来什么新特性?网友:不好意思,我还在JDK6踏步走...相关推荐

  1. JDK15已发布!网友:我还在JDK8踏步走...

    推荐阅读: 这套Github上40K+star学习笔记,可以帮你搞定95%以上的Java面试 毫不夸张的说,这份SpringBoot学习指南能解决你遇到的98%的问题 给跪了!这套万人期待的 SQL ...

  2. 玩玩Xamarin Evolve 2016带来的新特性(三)-Xamarin Workbooks

    编者语:五一祝各位劳动者快乐.今天是该系列文章的最后一篇,当然Evolve 2016还有很多很多的内容,但是我觉得iOS Simulator(for Windows), Xamarin Preview ...

  3. JDK17上手,新特性让你起飞

    Java8从14年发布以来已经经历了8年的厮杀,最终拼杀了Java50%的市场,可谓打遍天下无敌手.但是,随着JDK17的发布,Spring6的更新,Java8受到极大的挑战.这里我引用oracle官 ...

  4. Git 2.7: 一个新的带来许多新特性和性能提升的主要版本

    在2.6版本发布两个月之后,Git 2.7发布.该版本带来了许多新特性以及性能的提升. \\ 本文选取了Git 2.7带来的主要变化: \\ git remote支持get-url子命令,可以显示指定 ...

  5. Java 14 可能带来什么新特性?

    点击蓝色"程序猿DD"关注我 回复"资源"获取独家整理的学习资料! 作者 | oschina 来源 | 公众号「开源中国」 JDK/Java 13 在一个月前已 ...

  6. Xcode 8带来的新特性和坑

    这么晚还写这些,主要是有些东西以前没用到,最近使用到,所以写下算做个记录吧. ##正文 ###Interface Builder Xcode6中在原有的Auto layout的基础上,添加了Size ...

  7. [转]IntelliJ IDEA 2019.3正式发布,给我们带来哪些新特性?

    每篇一句 工欲善其事必先利其器 --<论语·卫灵公> 前言 千呼万唤始出来.自从JetBrains在今年7月24日发布了IDEA 2019.2版本后,从9月份开始我便一直在关注此版本正式版 ...

  8. JDK/Java 14 可能带来什么新特性?

    JDK/Java 13 在一个月前已经发布,该版本带来了 5 大新特性,笔者观察到其中的 Text Blocks(文本块)特性似乎被讨论最多.文本块特性与常见的 Python "" ...

  9. IntelliJ IDEA 2019.3 正式发布,给我们带来哪些新特性?| CSDN 博文精选

    作者 | _YourBatman 责编 | 屠敏 出品 | CSDN 博客 前言 千呼万唤始出来.自从JetBrains在今年7月24日发布了IDEA 2019.2版本后,从9月份开始我便一直在关注此 ...

  10. Redis 6 RC1发布,带来众多新特性

    Redis 6 RC1 发布了,项目创建人 antirez 在博客中介绍,这是迄今最"企业"化的版本(SSL 与 ACL 等特性与企业极相关),也是最大的版本,同时也是参与人数最多 ...

最新文章

  1. 无法使用_解决kali linux 2020 安装完后发现无法使用 ifconfig
  2. 2018-3-28 智能算法-Swarm Intelligence
  3. X5本地应用打包服务器环境搭建
  4. 学业水平测试计算机都考什么,高中学业水平考试与高中会考有什么区别
  5. Spring 事务不回滚
  6. 刚在虚拟机上装的Linux系统,ifconfig后IP地址怎么成了127.0.0.1了
  7. leetcode之Tow Sum两数之和的三种思路
  8. linux用户和群组的作用,linux中的用户、群组和权限
  9. C语言程序设计教学探讨,C语言程序设计多媒体教学探讨
  10. mysql-binlog日志恢复数据库
  11. yarn.lock 文件和 yarn install
  12. matlab中 text 使用画图示例
  13. 工作与生活 -- 平衡是必须的
  14. mysql 临时表 中文_MySQL 临时表
  15. UTF-8 encode decode 集合
  16. 2012-08-20 → 2012-08-26 周总结
  17. java代码性能优化
  18. 重磅!Pandownload开发者被抓,一代神器落幕!
  19. PhoneGap 外掛程式開發指南
  20. 售后服务场景智能调度解决方案

热门文章

  1. ubuntu 18.04 安装 LNMP
  2. iOS底层探索之KVO(五)—FBKVOController分析
  3. 微信小程序开发的坑---tabBar
  4. c#检查SQL语法是否正确,不执行SQL语句
  5. UVa 10815 - Andy's First Dictionary
  6. Android kotlin中配置protobuf
  7. 【对讲机的那点事】维修对讲机你会拆卸电路板上的集成电路块吗?
  8. MySQL经常使用命令--create命令使用
  9. Django的缓存(1)
  10. Python 中除法运算需要注意的几点