java随机数介绍以及生成随机日期
![](https://up.ctext.top/article/2024/10/tools2.png)
AI-摘要(由百度千帆大模型提供生成摘要能力)
Tianli GPT
AI初始化中...
介绍自己 🙈
生成本文简介 👋
推荐相关文章 📖
前往主页 🏠
前往爱发电购买
java随机数介绍以及生成随机日期
伴随生成一个随机日期
1 | public static Date randomTime(Date startTime, Date endTime) { |
JAVA生成随机数API
1. java.util.Random
Random 是 Java 中最常用的随机数生成器,属于伪随机数生成器(PRNG)。Random 提供了一系列方法来生成不同类型的随机数。
1 |
|
2. java.util.concurrent.ThreadLocalRandom
ThreadLocalRandom 是 Random 的线程安全版本,适合在多线程环境中使用。它的性能更好,因为它为每个线程创建一个独立的随机数生成器。
1 |
|
3. java.security.SecureRandom
SecureRandom 是专门设计用于生成加密强度的随机数。它比 Random 更安全,因为它使用的是加密算法生成的随机数,适合需要高安全性的场景,例如生成加密密钥、会话标识符等
1 |
|
4. Math.random()
Math.random() 是 Java 中生成 0.0 到 1.0 之间的双精度浮点数的简便方法,它是 Random 类的一个简化接口。Math.random() 内部实际上使用的是 Random 类的实例。
1 |
|
5. java.util.Random#ints (Java 8+)
从 Java 8 开始,Random 类新增了一些流式 API,可以用来生成随机数流,这对于生成一组随机数非常有用。
1 |
|
总结
随机数生成器 | 特点 | 适用场景 | 性能 |
---|---|---|---|
Random |
伪随机数生成器,使用线性同余法,支持多种随机数类型生成。 | 普通单线程场景 | 中 |
ThreadLocalRandom |
线程安全,性能优于 Random ,适合多线程环境。 |
多线程场景 | 高 |
SecureRandom |
安全性高,难以预测,适合加密、生成密钥等场景。 | 安全性要求高的场景(加密、认证等) | 低 |
Math.random() |
简单易用,只能生成 0.0 - 1.0 的 double 随机数。 |
生成简单的随机小数 | 中 |
Random#ints (Java 8+) |
支持流式生成随机数,适合生成多个随机数。 | 批量生成随机数 | 中 |
最后再说一下Hutool中的随机数API
Hutool 库中的 RandomUtil 提供了一系列生成随机数的方法,它基于 JDK 的 ThreadLocalRandom 实现,因此具备线程安全、性能高效的特性。在性能和使用便捷性上,RandomUtil 与 JDK 原生的随机数生成工具相比,有一些优势,尤其是简化了常见的随机数生成操作。
1 | // 用法很多,这里简单写几个 |
- 用法很多,基本上我们常用的生成方式它都能提供
- 使用简单,无需创建对象,直接调用
- 不支持加密强度的随机数生成
评论
匿名评论隐私政策