【Java】JDK17新特性

ops/2025/3/3 8:50:04/

JEP 356:增强型伪随机数生成器

地址:356

JDK 17 之前,我们可以借助 Random、ThreadLocalRandom 和SplittableRandom 来生成随机数。不过,这 3 个类都各有缺陷,且缺少常见的伪随机算法支持。

jdk17>jdk17中为伪随机数生成器 (PRNG) 提供新的接口类型和实现,包括可跳转 PRNG 和另一类可拆分 PRNG 算法 (LXM)。

提供了一个新的接口RandomGenerator,它为所有现有和新的 PRNG 提供了统一的 API。RandomGenerators 提供了名为 ints、longs、doubles、nextBoolean、nextInt、nextLong 的方法。 nextDouble 和 nextFloat 及其所有当前参数变体。

示例

java">public static void main(String[] args) {// 获取一个类型为  Xoshiro256PlusPlus(Xoroshiro128PlusPlus) 的随机数生成器工厂RandomGeneratorFactory<RandomGenerator> factory = RandomGeneratorFactory.of("Xoshiro256PlusPlus");// 使用工厂创建一个随机数生成器RandomGenerator randomGenerator = factory.create();// 生成 10 个随机数randomGenerator.ints().limit(10).forEach(System.out::println);}

在这里插入图片描述

JEP 406:switch 的模式匹配(预览版)

地址:406

通过 switch 的模式匹配增强 Java 编程语言 表达式和语句,以及对模式语言的扩展。 将模式匹配扩展到 switch 允许针对多个模式测试表达式,每个模式都有一个特定的作,以便可以简洁安全地表示面向数据的复杂查询。

正如 instanceof 一样, switch 也紧跟着增加了类型匹配自动转换功能。
instanceof 代码示例:

java">public static void main(String[] args) {Object object = "jldsfjld";//旧if (object instanceof String) {String s = (String)object;System.out.println(s);}//新if (object instanceof String s) {System.out.println(s);}}

switch 代码示例

java">//旧
public NodeStrategy getJsonStrategy(SvgElementTypeEnum typeEnum) {switch (typeEnum) {case BackGround:case group:case Text:return drawingBoardStrategy;case Image:return imageStrategy;case SvgImage:return iconStrategy;default:return imageStrategy;}}//新
public NodeStrategy getJsonStrategy(SvgElementTypeEnum typeEnum) {return switch (typeEnum) {case BackGround, group, Text -> drawingBoardStrategy;case Image -> imageStrategy;case SvgImage -> iconStrategy;default -> imageStrategy;};}

http://www.ppmy.cn/ops/162719.html

相关文章

【AIGC系列】4:Stable Diffusion应用实践和代码分析

AIGC系列博文&#xff1a; 【AIGC系列】1&#xff1a;自编码器&#xff08;AutoEncoder, AE&#xff09; 【AIGC系列】2&#xff1a;DALLE 2模型介绍&#xff08;内含扩散模型介绍&#xff09; 【AIGC系列】3&#xff1a;Stable Diffusion模型原理介绍 【AIGC系列】4&#xff1…

(未完)3D Shape Tokenization

https://arxiv.org/abs/2412.15618 3D Shape Tokenization 摘要 我们引入了形状标记&#xff08;Shape Tokens&#xff09;&#xff0c;这是一种连续、紧凑且易于融入机器学习模型的3D表示方法。形状标记作为3D流匹配模型中的条件向量&#xff0c;代表形状信息。流匹配模型通…

【 开发知识点 一 】 随机数生成器 /dev/urandom 和 /dev/random

文章目录 一、随机数生成器 是什么 ?二、为什么 需要 随机数生成器 ?三、随机数生成器 基本原理四、随机数生成器 三个输出接口五、随机生成器 应用1、简单应用2、项目应用一、随机数生成器 是什么 ? /dev/random 和 /dev/urandom 是 Linux 上的字符设备文件,它们是随机数…

【计算机网络入门】初学计算机网络(八)

目录 1. S-W协议的信道利用率 2. GBN、SR协议的信道利用率 3.术语补充 3.1 滑动窗口协议 3.2 ARQ协议、连续ARQ协议 4. 信道划分介质访问控制 4.1 时分复用&#xff08;TDM&#xff09; 4.2 统计时分复用&#xff08;STDM&#xff09; 4.3 频分复用&#xff08;FDM&a…

使用 Kubeflow 和 Ray 构建机器学习平台

使用 Kubeflow 和 Ray 构建一个稳健的 ML 平台。我们将深入讨论 Kubeflow 和 Ray 的独特功能,以及它们如何互补,共同创建一个强大的 ML 生态系统 集中化 ML 平台的需求 随着企业在 ML 旅程中的成熟,初始 ML 项目的临时性质逐渐让位于对更结构化和可扩展方法的需求。集中化…

从源到目标:深度学习中的迁移学习与领域自适应实践

云边有个稻草人-CSDN博客 目录 引言 一、迁移学习概述 1.1 迁移学习的类型 1.2 迁移学习的核心思想 1.3 迁移学习的应用场景 二、领域自适应&#xff08;Domain Adaptation&#xff09; 2.1 领域自适应的定义 2.2 领域自适应的挑战 2.3 领域自适应的核心方法 &#…

DrissionPage动态库过(某网)滑块(100%成功)

并不是所有的滑块识别都需要深度学习&#xff0c;下面这个通过元素定位就能100%过 经过测试&#xff0c;&#xff0c;第一次会停顿会&#xff0c;之后都是成功&#xff01; DrissionPage有个方法可以获取元素位置大小&#xff0c;通过它我们来获取缺口的位置&#xff08;相对元…

20250302小米13ultra删除照片后没有在回收站

20250302小米13ultra删除照片后没有在回收站 2025/3/2 22:39 缘起&#xff1a;喜欢小米13ultra拍摄8K视频的功能。 但是8K视频的体积巨大&#xff0c;特别占用空间。 虽然删除了&#xff0c;但是空间占用还是很大。 百度&#xff1a;小米13ultra删除照片后没有在回收站\ https:…