当前位置: 首页 > news >正文

JDK22一些新特性

JDK 22已经于2024年3月19日正式发布。本文总结了JDK 22发布的新特性。

安装包下载

主要分为OpenJDK版本和Oracle版本,下载地址如下:

  • OpenJDK版本:https://jdk.java.net/22/
  • Oracle版本:https://www.oracle.com/java/technologies/downloads/

上述版本,如果是个人学习用途,则差异不大。但如果是用于商业用途,则需要仔细看好相关的授权。Oracle JDK商用需要遵循 Oracle No-Fee Terms and Conditions (NFTC)协议,而OpenJDK根据GPL v2许可获得许可。

JDK 22 新特性说明

JEP 423 Region Pinning for G1

通过在G1中实现区域钉扎来减少延迟,这样在Java Native Interface(JNI)关键区域期间就不需要禁用垃圾收集。

JEP 447 Statements before super(…) (预览)

在Java编程语言的构造函数中,允许不引用正在创建的实例的语句出现在显式构造函数调用之前。这是一个预览语言功能。

JEP 454 Foreign Function & Memory API

引入API,Java程序可以通过该API与Java运行时之外的代码和数据进行互操作。通过有效地调用外部函数(即JVM外部的代码),并通过安全地访问外部内存(即不受JVM管理的内存),API使Java程序能够调用本机库并处理本机数据,而不会出现JNI的脆弱性和危险性。

JEP 456 Unnamed Variables & Patterns

使用未命名变量和未命名模式增强Java编程语言,当需要变量声明或嵌套模式但从未使用时,可以使用这些变量和模式。两者都用下划线字符_表示。

JEP 457 Class-File API(预览版)

提供一个标准的API,用于解析、生成和转换Java类文件。这是一个预览API。

JEP 458 Launch Multi-File Source-Code Programs

增强java应用程序启动器,使其能够运行作为java源代码的多个文件提供的程序。这将使从小程序到大程序的过渡更加渐进,使开发人员能够选择是否以及何时配置构建工具。

JEP 459 String Templates(第二次预览)

使用字符串模板增强Java编程语言。字符串模板通过将文本与嵌入的表达式和模板处理器耦合来产生专门的结果,从而补充Java现有的字符串文本和文本块。这是一个预览语言功能和API。

JEP 460 Vector API(第七培养箱)

引入API来表示向量计算,这些向量计算在运行时可靠地编译为支持的CPU架构上的最佳向量指令,从而实现优于等效标量计算的性能。

JEP 461 Stream Gatherers(预览)

增强Stream API以支持自定义中间操作。这将允许流管道以现有内置中间操作无法轻松实现的方式转换数据。这是一个预览API。

JEP 462 Structured Concurrency (第二次预览)

通过引入用于结构化并发的API来简化并发编程。结构化并发将在不同线程中运行的相关任务组视为单个工作单元,从而简化错误处理和消除,提高可靠性,并增强可观察性。这是一个预览API。

JEP 463 Implicitly Declared Classes and Instance Main Methods(第二次预览)

发展Java编程语言,使学生无需理解为大型程序设计的语言功能即可编写第一个程序。学生们可以为单类程序编写精简的声明,而不是使用单独的语言方言,然后随着技能的发展,无缝地扩展程序,使用更高级的功能。这是一个预览语言功能。

JEP 464 Scoped Values(第二次预览)

引入作用域值,使不可变数据能够与同一线程中的子帧和子线程进行托管共享。作用域值比线程本地变量更容易推理,并且空间和时间成本更低,尤其是与虚拟线程和结构化并发结合使用时。这是一个预览API。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 空间数据库概述
  • JS获取URL参数的几种方法
  • swift:qwen2 VL 多模态图文模型lora微调swift
  • 在ros中进行无人机和无人车之间的通信(代码)
  • iframe详解和用途解读
  • WiFi性能测试是评估无线网络性能的重要环节,它涵盖了多个方面的指标,如信号强度、网络速度、延迟时间等。
  • C语言从头学55——学习头文件errno.h、float.h
  • 构建Vue项目的侧边栏组件:Aside
  • 【Windows系统工具】dll综合解决工具,解锁专业版功能!
  • docker的网络模式
  • K8S中部署MySQL高可用工具Orchestrator
  • 微服务网关全能进化:设计模式加持下的Spring Cloud Alibaba落地实践(三)
  • 【强化学习环境搭建】mujoco,mujoco_py,d4rl等强化学习相关资源安装及使用的参考资料链接 持续更新ing
  • C#Winform常见的多线程实现方法:
  • nacos Spring cloud 报错 URI is not absolute、service not found、502 bad gateway
  • canvas 绘制双线技巧
  • ES6之路之模块详解
  • GitUp, 你不可错过的秀外慧中的git工具
  • Javascript Math对象和Date对象常用方法详解
  • JavaScript设计模式与开发实践系列之策略模式
  • Java比较器对数组,集合排序
  • linux学习笔记
  • Phpstorm怎样批量删除空行?
  • Python 反序列化安全问题(二)
  • REST架构的思考
  • spring + angular 实现导出excel
  • Vue2 SSR 的优化之旅
  • Work@Alibaba 阿里巴巴的企业应用构建之路
  • 高性能JavaScript阅读简记(三)
  • 给自己的博客网站加上酷炫的初音未来音乐游戏?
  • 面试遇到的一些题
  • 前端路由实现-history
  • 为视图添加丝滑的水波纹
  • 用Python写一份独特的元宵节祝福
  • 说说我为什么看好Spring Cloud Alibaba
  • 专访Pony.ai 楼天城:自动驾驶已经走过了“从0到1”,“规模”是行业的分水岭| 自动驾驶这十年 ...
  • ​ArcGIS Pro 如何批量删除字段
  • ​ubuntu下安装kvm虚拟机
  • #android不同版本废弃api,新api。
  • #pragma multi_compile #pragma shader_feature
  • $(function(){})与(function($){....})(jQuery)的区别
  • (52)只出现一次的数字III
  • (libusb) usb口自动刷新
  • (含react-draggable库以及相关BUG如何解决)固定在左上方某盒子内(如按钮)添加可拖动功能,使用react hook语法实现
  • (南京观海微电子)——COF介绍
  • (牛客腾讯思维编程题)编码编码分组打印下标(java 版本+ C版本)
  • (十七)devops持续集成开发——使用jenkins流水线pipeline方式发布一个微服务项目
  • (数位dp) 算法竞赛入门到进阶 书本题集
  • (四)库存超卖案例实战——优化redis分布式锁
  • (算法设计与分析)第一章算法概述-习题
  • (一)Neo4j下载安装以及初次使用
  • (一)硬件制作--从零开始自制linux掌上电脑(F1C200S) <嵌入式项目>
  • (转)IOS中获取各种文件的目录路径的方法
  • .bat批处理出现中文乱码的情况
  • .Net Core 中间件与过滤器