Random rd = new Random(10);
int s = rd.nextInt(20);
这里的10是一个种子,20才是随机数,种子不变的话产生的随机数相同,这里不管执行几次随机数都是13
这是一种伪随机规则,就是有规则的随机
public Random() {
this(seedUniquifier() ^ System.nanoTime());
}
public Random(long seed) {
if (getClass() == Random.class)
this.seed = new AtomicLong(initialScramble(seed));
else {
// subclass might have overriden setSeed
this.seed = new AtomicLong();
setSeed(seed);
}
}
看下Random类的构造函数,如果构造函数参数为空,会以当前系统的毫秒数生成随机数,有种子的话会生成指定的随机数。