欢迎关注方志朋的博客,回复”666“获面试宝典

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/

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

在这里,我为大家准备了一份2021年最新最全的《史上最简单的java面试题》,这套电子书涵盖了诸多java技术栈的面试知识题,是作者面试BAT大厂的前的总结,作者顺利拿下AT的offer,相信可以帮助大家在最短的时间内复习Java后端的大多数面试题,从而拿到自己心仪的offer。

截了张图,大家可以仔细查看左边的菜单栏,覆盖的知识面真的很广,而且质量都很不错。

资料获取方法

  1. 扫描下方二维码

  2. 后台回复关键词:BAT

明天见(。・ω・。)

JDK17 要来了!会带来什么新特性?不好意思,我还在JDK7 踏步走...相关推荐

  1. 从JDK8到JDK17,需要注意的一些新特性

    这篇文章并非单一的介绍JDK17的新特性,而是将jdk8到jdk17之间所有新加入的特性进行了简单的汇总,罗列一系列重要的改动,以便从JDK8升级到JDK17. 模块化开发 这并非jdk17的新特性, ...

  2. 前瞻:在 Java 16 中会带来哪些新特性?

    点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 随着JDK 15的发布,计划于明年3月发布的JDK 16 ...

  3. ES8都有哪些新特性,你还在用ES6吗?

    原文:ES8 was Released and here are its Main New Features 作者: Dor Moshe 翻译:黑色巧克力 译者注:EcmaScript第8版已经发布, ...

  4. JDK 17 要来了!会带来什么新特性?不好意思,我还在 JDK 7 踏步走...

    欢迎关注方志朋的博客,回复"666"获面试宝典 在文章的开头,先说下NPE问题,NPE问题就是,我们在开发中经常碰到的NullPointerException.假设我们有两个类,他 ...

  5. rhel6系统中,mysql 5.6复制新特性下主从复制配置[基于GTID]

    1.mysql5.6在复制方面的新特性: (1).支持多线程复制:事实上是针对每个database开启相应的独立线程,即每个库有一个单独的(sql thread).针对这样的改进,如果我们想实现多线程 ...

  6. 《深入理解C++11:C++ 11新特性解析与应用》——导读

    前 言 为什么要写这本书 相比其他语言的频繁更新,C++语言标准已经有十多年没有真正更新过了.而上一次标准制定,正是面向对象概念开始盛行的时候.较之基于过程的编程语言,基于面向对象.泛型编程等概念的C ...

  7. C# 10 新特性 —— 补充篇

    C# 10 新特性 -- 补充篇 Intro 前面已经写了几篇文章介绍 C# 10 新特性的文章,还有一些小的更新 Constant interpolated strings 在之前的版本中,如果想要 ...

  8. 那些在11gR2中可能惹祸的新特性,一张列表帮助你摆脱升级11gR2带来的烦恼

    有很多朋友因为11gR2那些潜在的特性可能给升级后系统稳定运行带来麻烦而无法鼓足升级到11gR2的勇气,实际Oracle在开发新版本RDBMS软件时引入的一些特性有很好的理念的,但是往往这些理念会给已 ...

  9. java 6 7 区别大吗_java基础(1)-比较jdk5,jdk6,jdk7的新特性

    jdk8已经出来好长时间了,这里自己学习时简单总结的jdk5,jdk6和jdk7的新特性: 本文提纲: 一.jdk5的新特性 二.jdk6的新特性 三.jdk7的新特性 一.jdk5的新特性 首先简单 ...

最新文章

  1. 在Ubuntu 14.04.5 64bit上安装git GUI客户端GitKraken
  2. Azkaban入门(启动一个Simple Example)
  3. python里dir是什么意思_python中dir什么作用
  4. python 获取本机IP的三种方式
  5. RabbitMQ单个发布确认
  6. 小红书shield算法分析
  7. 稳定匹配问题——稳定婚姻算法设计
  8. 文献阅读:知识图谱数据管理研究综述
  9. React Render props
  10. ubuntu和windows上pip和windows上conda国内源更新module
  11. Android Studio中R无法找到res/raw文件夹
  12. 华为OSN3500与路由器混合组网
  13. JavaScript中浏览器兼容性解决办法
  14. Tamami教你孕前如何选购防辐射服
  15. 计算机学院考研动员大会,青春正当时,奋进当有为——学院顺利举办2018级考研动员大会...
  16. wiki维基百科各种语料数据下载
  17. 关于That command depends on command in Target ... script phase Copy Pods Resources报错解决方案
  18. 微信小程序登录服务器失败,微信小程序后台登录一直失败
  19. 鞋底php是什么材质,鞋底用EVA材料更好还是橡胶呢?
  20. Android基础控件—SearchView

热门文章

  1. php cpu使用率,如何减低php程序的cpu使用率?
  2. mybatis报错There is no getter for property named '***' in 'class ***'
  3. Asp.Net Core 入门(一)——Program.cs做了什么
  4. C# 栈 、队列的概念
  5. 提升jmeter自身性能
  6. 【Henu ACM Round#15 A】 A and B and Chess
  7. iOS开发-自己定义重用机制给ScrollerView加入子视图
  8. 【转】Mac 程序员的十种武器
  9. VCL 中的 Windows API 函数(6): BeginDeferWindowPos
  10. 【组队学习】【35期】李宏毅机器学习(含深度学习)