java 如何使用random
使用 Random 类生成随机数
在 Java 中,java.util.Random 类提供了生成伪随机数的功能。以下是一些常见用法:
创建 Random 实例
Random random = new Random();
生成随机整数
int randomInt = random.nextInt(); // 生成任意范围内的整数
int boundedRandomInt = random.nextInt(100); // 生成 0-99 的整数
生成随机长整型
long randomLong = random.nextLong();
生成随机布尔值
boolean randomBoolean = random.nextBoolean();
生成随机浮点数
float randomFloat = random.nextFloat(); // 0.0-1.0
double randomDouble = random.nextDouble(); // 0.0-1.0
使用 Random 生成特定范围的随机数
生成 1-100 的随机整数
int num = random.nextInt(100) + 1;
生成 10-20 的随机整数
int num = random.nextInt(11) + 10;
生成指定范围的随机双精度数
double min = 5.0;
double max = 10.0;
double randomDouble = min + (max - min) * random.nextDouble();
使用 Random 生成随机字符串
生成随机字母字符串
int length = 10;
StringBuilder sb = new StringBuilder();
for (int i = 0; i < length; i++) {
char c = (char) ('a' + random.nextInt(26));
sb.append(c);
}
String randomString = sb.toString();
使用 Random 生成随机字节数组
byte[] bytes = new byte[20];
random.nextBytes(bytes);
使用种子创建可预测的随机序列
Random seededRandom = new Random(12345L); // 使用固定种子
// 每次运行都会生成相同的随机序列
线程安全的 Random 替代方案
在多线程环境中,可以考虑使用 ThreadLocalRandom:
import java.util.concurrent.ThreadLocalRandom;
int randomNum = ThreadLocalRandom.current().nextInt(1, 101); // 1-100
或者使用 SplittableRandom(Java 8+):
import java.util.SplittableRandom;
SplittableRandom splittableRandom = new SplittableRandom();
int randomNum = splittableRandom.nextInt(1, 101);
注意事项
伪随机数生成器产生的数字序列是可预测的,不适合安全敏感场景。对于加密应用,应使用 java.security.SecureRandom。
默认构造器使用系统时间作为种子,如果在短时间内创建多个 Random 实例,可能会产生相同的随机序列。







