Random类
- 位于
java.util
包下
1. 构造方法
Constructor and Description |
---|
Random() 创建一个新的随机数生成器。 |
Random(long seed) 使用单个 long 种子创建一个新的随机数生成器。 |
2. 使用
Random无参构造器源码
public Random() {
this(seedUniquifier() ^ System.nanoTime());
}
// 1. 使用带参构造器创建对象
Random random = new Random(System.currentTimeMillis());
System.out.println(random.nextInt());
// 2. 使用无参构造器创建对象
// 无参构造器实际上是调用了带参构造器
Random random1 = new Random();
System.out.println(random1.nextInt(10)); // 在0到指定值(左闭右开区间均匀分布的int值
System.out.println(random1.nextDouble()); // 在0到1.0值(左闭右开区间均匀分布的double值
3. 其他
- Math.random()方法实际上调用了Random类下的nextDouble()方法
// Math类内
public static double random() {
return RandomNumberGeneratorHolder.randomNumberGenerator.nextDouble();
}
private static final class RandomNumberGeneratorHolder {
static final Random randomNumberGenerator = new Random();
}
// Random类内
public double nextDouble() {
return (((long)(next(26)) << 27) + next(27)) * DOUBLE_UNIT;
}