java如何获得随机数
使用 java.util.Random 类
Random 类是 Java 中生成随机数的常用工具。可以生成整数、浮点数或布尔值。
import java.util.Random;
Random random = new Random();
int randomInt = random.nextInt(); // 生成任意范围的整数
int boundedInt = random.nextInt(100); // 生成 0-99 的整数
double randomDouble = random.nextDouble(); // 生成 0.0-1.0 的浮点数
boolean randomBoolean = random.nextBoolean(); // 生成 true/false
使用 Math.random() 方法
Math.random() 返回一个 double 类型的伪随机数,范围在 [0.0, 1.0) 之间。

double randomValue = Math.random(); // 0.0 <= x < 1.0
int scaledValue = (int)(Math.random() * 100); // 0-99 的整数
使用 ThreadLocalRandom(Java 7+)
ThreadLocalRandom 是线程安全的随机数生成器,适用于并发环境。

import java.util.concurrent.ThreadLocalRandom;
int randomNum = ThreadLocalRandom.current().nextInt(1, 101); // 1-100 的整数
double randomDouble = ThreadLocalRandom.current().nextDouble(0.0, 10.0); // 0.0-10.0 的浮点数
使用 SecureRandom(安全随机数)
SecureRandom 提供加密级别的随机数生成,适用于安全敏感场景。
import java.security.SecureRandom;
SecureRandom secureRandom = new SecureRandom();
int secureInt = secureRandom.nextInt(100); // 0-99 的整数
byte[] bytes = new byte[16];
secureRandom.nextBytes(bytes); // 生成随机字节数组
生成指定范围的随机数
如果需要生成特定范围的随机数(如 [min, max]),可以结合 Random 或 ThreadLocalRandom 实现:
int min = 10;
int max = 20;
int rangeRandom = new Random().nextInt(max - min + 1) + min; // 10-20 的整数
注意事项
Random和Math.random()是伪随机数,不适合安全敏感场景。SecureRandom性能较低,但安全性更高。- 在多线程环境中优先使用
ThreadLocalRandom。




