找回密码
 立即注册
搜索
查看: 5121|回复: 15

[数码] Java 20 发布!

[复制链接]
     
发表于 2023-3-24 11:47 | 显示全部楼层 |阅读模式
编译 | 苏宓出品 | CSDN(ID:CSDNnews)
Java 20 发布!© 由 ZAKER 提供


Java 20 包含了许多新的特性和改进。根据 Oracle 官方透露,在 Java 20 中,在标记为固定的 2314 个 JIRA 问题中,1595 个是由甲骨文完成的,而 719 个是由 Java 社区的其他成员贡献的。其中国内的阿里巴巴、华为、腾讯都有不少的贡献。

Java 20 发布!© 由 ZAKER 提供


接下来,我们将介绍 Java 20 的一些重要新特性,以帮助 Java 开发者更好地了解这个版本。
整体而言,JDK 20 引入了七种新功能,这些功能当前处于孵化或预览阶段,具体如下:
  • 在 JDK 20 中,最新的向量 API 提案直到几周前才正式加入。向量 API 用来表达向量计算,在运行时可靠地编译为支持的 CPU 架构上的最佳向量指令。这将实现优于同等标量计算的性能。向量 API 之前已经在 JDK 16、JDK 17、JDK 18 和 JDK 19 中得到了孵化,因此这一次是向量 API 进入第 5 次孵化阶段。


  • 虚拟线程(Virtual Threads)在 JDK 20 中进入第 2 次预览阶段。它是 JDK 实现的轻量级的线程,可以减少编写、维护和观察高吞吐量并发应用程序的工作。据 Oracle 称,这种能力将从根本上改变 Java 应用的扩展方式。
  • 结构化并发 (Structured Concurrency) 具有简化多线程编程的作用,并将在不同线程中运行的多个任务视为一个工作单元。简化了错误处理等功能后,提高了可靠性并增强了可观察性。自从在 JDK 19 中孵化以来,唯一的变化是,StructuredTaskScope 已经被更新,以支持在任务范围内创建的线程对范围值的继承。这个功能正在被重新孵化。
  • 作用域值(Scoped Values)是一个处于孵化阶段的 API,可以在线程内和跨线程共享不可变的数据。与线程本地变量相比,这些变量更受欢迎,特别是在使用大量的虚拟线程时。一个作用域值允许数据在大型程序的组件之间安全有效地共享,而不需要借助方法参数。目标包括易用性、可理解性、稳健性和性能。
  • 记录模式 (Record Patterns) ,目前处于第二个预览版本,可对 record 的值进行解构,用以增强 Java 编程语言。Record patterns 和 Type patterns 可以嵌套,以实现数据导航和处理的声明性、强大和可组合的形式。目标包括扩展模式匹配以表达更复杂的、可组合的数据查询,并且不改变类型模式的语法或语义。
  • 外部函数和内存 API。它通过引入一个 API,让 Java 程序可以与 Java 运行时之外的代码和数据进行互操作。该 API 使 Java 程序能够调用本地库和处理本地数据,而不会像 JNI(Java Native Interface)那样脆弱和危险。该 API 以前在 JDK 17 和 18 版本中进行过孵化,并在 JDK 19 中进行过预览。自 JDK 19 以来增加的改进包括统一 MemorySegment 和 MemoryAddress 抽象,增强 MemoryLayout 层次结构,以及将 MemorySession 拆分为 Arena 和 SegmentScope 等。
  • Switch 语句和表达式的模式匹配功能之前在 JDK 17、JDK 18 和 JDK 19 中进行过预览,第四次预览将实现与 Record Patterns 的持续共同演进。自第三次预览以来,switch 的模式匹配的主要变化包括简化 switch 标签的语法,以及支持 switch 语句和表达式中通用模式和记录模式的类型参数的推断。


值得注意的是,JDK 20 不是长期支持(LTS)版本,它会在六个月之后被下一个 LTS 版本 JDK 21 取代,所以当前想要直接将 Java 升级到 JDK 20 的开发者们也需要慎重选择。
你用到 Java 的哪个版本了呢?
https://blogs.oracle.com/java/post/the-arrival-of-java-20


你爱刷就继续刷 反正公司java8
回复

使用道具 举报

头像被屏蔽
     
发表于 2023-3-24 12:23 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

     
发表于 2023-3-24 12:33 | 显示全部楼层
Java8天长地久
11什么的都不要想
回复

使用道具 举报

     
发表于 2023-3-24 12:56 来自手机 | 显示全部楼层
因为许可证问题Java8用到死了,新项目也不会考虑Java

—— 来自 Xiaomi Mi 10, Android 12上的 S1Next-鹅版 v2.5.4
回复

使用道具 举报

头像被屏蔽
     
发表于 2023-3-24 14:53 来自手机 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

     
发表于 2023-3-24 15:02 来自手机 | 显示全部楼层
Android这边一直倒是8比较多,11都是最近的测试版在用。大概是kotlin也够用了吧

—— 来自 OPPO PGU110, Android 13上的 S1Next-鹅版 v2.5.3
回复

使用道具 举报

     
发表于 2023-3-24 16:25 来自手机 | 显示全部楼层
默认都是1.8,想让 Android Studio 用新的,你还得调
回复

使用道具 举报

     
发表于 2023-3-24 18:56 | 显示全部楼层
jdk又不是只有oracle有

—— 来自 S1Fun
回复

使用道具 举报

     
发表于 2023-3-24 19:32 | 显示全部楼层
cpp11
java1.8
倒是python基本上切到3了
回复

使用道具 举报

     
发表于 2023-3-24 20:31 来自手机 | 显示全部楼层
我们这年底要切17。11用了很多年了。来自: iPhone客户端
回复

使用道具 举报

     
发表于 2023-3-24 22:55 | 显示全部楼层
11 之后切版本应该影响不大吧,17 之后更是直接免费一段时间
回复

使用道具 举报

头像被屏蔽
     
发表于 2023-3-24 23:08 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

发表于 2023-3-25 00:21 来自手机 | 显示全部楼层
虚拟线程就是kotlin的协程吗

—— 来自 Sony XQ-AT52, Android 10上的 S1Next-鹅版 v2.5.2-play
回复

使用道具 举报

头像被屏蔽
发表于 2023-3-25 03:55 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

头像被屏蔽
     
发表于 2023-3-25 04:06 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

     
发表于 2023-3-25 12:17 | 显示全部楼层
“在标记为固定的 2314 个 JIRA 问题中”  这是机翻吗?机翻也不至于这么蠢啊。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|上海互联网违法和不良信息举报中心|网上有害信息举报专区|962110 反电信诈骗|举报电话 021-62035905|Stage1st ( 沪ICP备13020230号-1|沪公网安备 31010702007642号 )

GMT+8, 2024-9-21 16:25 , Processed in 0.058885 second(s), 5 queries , Gzip On, Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表