在看Java编程思想的时候,看到了下面这句:
private Random rand = new Random(47);
而平时使用的都是如下的方式来生成随机数
Random rand=new Random();
int i=rand.nextInt(20);
查阅API文档,上面是这样解释的,可还是不是很懂
然后自己代码实践了一下,代码如下
import java.util.Random;
public class Exercise17 {
private static Random rand = new Random(47);
void test(){
int i = rand.nextInt(20);
System.out.println(i);
}
public static void main(String [] args) {
Exercise17 e17= new Exercise17();
for (int i = 0; i < 10; i++) {
e17.test();
}
}
}
运行多次后发现每次生成的10个随机数都是与上一次生成的10个随机数数值、顺序相同,我又改变了nextInt()中的值,运行后发现这一次和上一次的值依然相同。
所以可以这么理解理解这个“47”:Random的含参构造器里的参数是一种随机数生成规则,此后Random对象都依照这个规则生成随机数,故当然这个每次运行的结果都一致。当然这个“47”是可以改变数值的。