Random()选择的种子是和当前时间相关的,是随机的。
Random(Long seed) 种子是固定的,是伪随机的。
初始的种子不同:
Random()是采用默认生成的种子
Random(long seed)是自己设置的种子.
对于种子相同的, 生成的随机数序列是一致的.
比如new Random(10).nextInt()肯定等于new Random(10).nextInt()
但是new Random().nextInt()就不一定等于new Random().nextInt()
如果你在创建一个新的Random对象的时候,赋予一个基数的话,那你生成的随机数也就是一个定值。
因为这个随机数是根据基数计算出来的。
而如果直接使用缺省构造器的话,它的基数每次都不一样。
举例:
Random rand = new Random(47);//所有随机数在0-47之间
int a = rand.nextInt(20);//生成数在0-20之间