java如何获取随机数
使用 java.util.Random 类
Random 类是 Java 中生成随机数的常用工具。可以生成整数、浮点数或布尔值等类型的随机数。以下是示例代码:
import java.util.Random;
public class RandomExample {
public static void main(String[] args) {
Random random = new Random();
// 生成一个随机整数(范围是所有可能的 int 值)
int randomInt = random.nextInt();
// 生成一个 0 到 99 之间的随机整数
int boundedRandomInt = random.nextInt(100);
// 生成一个随机浮点数(0.0 到 1.0 之间)
double randomDouble = random.nextDouble();
// 生成一个随机布尔值
boolean randomBoolean = random.nextBoolean();
}
}
使用 Math.random() 方法
Math.random() 是 Java 提供的一个简单方法,生成一个 double 类型的随机数,范围在 [0.0, 1.0)。可以通过数学运算调整范围:
public class MathRandomExample {
public static void main(String[] args) {
// 生成 0.0 到 1.0 之间的随机数
double randomDouble = Math.random();
// 生成 0 到 99 之间的随机整数
int randomInt = (int) (Math.random() * 100);
// 生成 10 到 20 之间的随机整数
int randomInRange = 10 + (int) (Math.random() * 11);
}
}
使用 ThreadLocalRandom 类(Java 7+)
ThreadLocalRandom 是 Random 的增强版,适用于多线程环境,性能更好:
import java.util.concurrent.ThreadLocalRandom;
public class ThreadLocalRandomExample {
public static void main(String[] args) {
// 生成 0 到 99 之间的随机整数
int randomInt = ThreadLocalRandom.current().nextInt(100);
// 生成 10 到 20 之间的随机整数
int randomInRange = ThreadLocalRandom.current().nextInt(10, 21);
// 生成随机浮点数
double randomDouble = ThreadLocalRandom.current().nextDouble();
}
}
使用 SecureRandom 类(安全随机数)
如果需要加密安全的随机数(如生成密钥),可以使用 SecureRandom:
import java.security.SecureRandom;
public class SecureRandomExample {
public static void main(String[] args) {
SecureRandom secureRandom = new SecureRandom();
// 生成随机整数
int randomInt = secureRandom.nextInt();
// 生成 0 到 99 之间的随机整数
int boundedRandomInt = secureRandom.nextInt(100);
}
}
生成特定范围的随机数
无论是哪种方法,都可以通过数学运算调整随机数的范围。例如,生成 [min, max] 范围内的随机整数:

int randomInRange = min + random.nextInt(max - min + 1);
注意事项
Random和ThreadLocalRandom适用于一般场景,而SecureRandom适用于安全性要求高的场景。Math.random()内部使用Random类,但调用更简单。- 在多线程环境中,优先使用
ThreadLocalRandom以避免竞争条件。






