Java 生成随机数的 5 种方式,你知道几种?

2. java.util.Random工具类 使用java.util.Random类提供的线性同余法伪随机数生成器(LGC)进行随机数生成。此方法存在可预测性问题,不适用于安全性要求高的场景。使用示例:结果示例:-24520987, -96094681, -952622427, 300260419, 1489256498 此方法使用当前系统时钟作为种子,保证了随机数生成的多样性...
Java 生成随机数的 5 种方式,你知道几种?
本文将介绍五种Java生成随机数的方式,帮助你全面掌握随机数生成的技巧。

1. Math.random()静态方法

使用Math.random()方法可以生成0到1之间的随机double值。例如:

结果示例:

0.3598613895606426, 0.2666778145365811, 0.25090731064243355, 0.011064998061666276, 0.600686228175639, 0.9084006027629496, 0.12700524654847833, 0.6084605849069343, 0.7290804782514261, 0.9923831908303121

此方法通过java.util.Random类内部实现,确保了线程安全。

2. java.util.Random工具类

使用java.util.Random类提供的线性同余法伪随机数生成器(LGC)进行随机数生成。此方法存在可预测性问题,不适用于安全性要求高的场景。

使用示例:

结果示例:

-24520987, -96094681, -952622427, 300260419, 1489256498

此方法使用当前系统时钟作为种子,保证了随机数生成的多样性。

3. java.util.concurrent.ThreadLocalRandom工具类

ThreadLocalRandom类提供了一种线程安全的随机数生成方式,适合并发环境。它基于java.util.Random类实现。

使用示例:

结果示例:

Thread-0: 0.13267085355389086, Thread-1: 0.1138484950410098, Thread-0: 0.17187774671469858, Thread-1: 0.9305225910262372

ThreadLocalRandom确保了每个线程独立生成随机数,提高了并发效率。

4. java.Security.SecureRandom

SecureRandom类提供了安全性更高的随机数生成方式,适合用于安全敏感的应用场景。它基于操作系统提供的随机事件作为种子,如用户输入等。

使用示例:

结果示例:

704046703 != 2117229935, 60819811 != 107252259, 425075610 != -295395347, 682299589 != -1637998900, -1147654329 != 1418666937

SecureRandom通过操作系统的随机事件产生种子,确保了随机数的不可预测性。

5. 随机字符串

可以使用Apache Commons-Lang库中的RandomStringUtils类生成随机字符串。通过Maven引入依赖。

RandomStringUtils类通过java.util.Random实现随机数生成,适用于需要生成随机字符串的场景。2024-09-02
mengvlog 阅读 8 次 更新于 2025-07-19 17:53:01 我来答关注问题0
檬味博客在线解答立即免费咨询

Java相关话题

Copyright © 2023 WWW.MENGVLOG.COM - 檬味博客
返回顶部