Math.random() 与 random.nextInt() 的区别

时间:2021-02-07 13:31:40

1、来源

random.nextInt() 为 Java.util.Random类中的方法; 
Math.random() 为 java.lang.Math 类中的静态方法。

 

2、用法

产生0-n的伪随机数(伪随机数参看最后注解):

// 两种生成对象方式:带种子和不带种子(两种方式的区别见注解)
Random random = new Random();
Integer res = random.nextInt(n); //返回值是int类型
Integer res = (int)(Math.random() * n);//返回值是double 类型

3、线程

  1. Math.random() 方法生成[0, 1)范围内的double类型随机数;Random类中的nextXxxx系列方法生成0-n的随机数;
  2. Math.random() 线程安全,多线程环境能被调用;
  3. 如无特殊需求,则使用(int)(Math.random()*n)的方式生成随机数即可。