java的随机数不是真的随机数,是根据种子和算法决定的。
Random
Random r =new Random(100);
这里面的初始化的100就是种子
System.out.println(r.nextInt(20));
nextInt()里面的20就是范围,默认不含20,从0开始
不指定的情况下,int可能为负数,double是大于0小于1,long可能为负数,float是大于0小于1
如果不指定随机种子,默认的随机种子是
this(seedUniquifier() ^ System.nanoTime());
一般不指定随机种子,指定结果的范围即可,默认就是和时间相关的随机种子来保证随机效果
Math.random()
Math.random()
本质还是使用系统的随机数,不能传入参数
默认还是使用的new Random().nextDouble();得到的是大于0小于1的随机数