Random类

  1. 位于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. 其他

  1. 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;
}
Copyright © rootwhois.cn 2021-2022 all right reserved,powered by GitbookFile Modify: 2022-11-26 20:03:31

results matching ""

    No results matching ""