1.Math.random()
返回带正号的 double 值,该值大于等于 0.0 且小于 1.0。
返回值是一个伪随机选择的数,在该范围内(近似)均匀分布。
第一次调用该方法时,它将创建一个新的伪随机数生成器。
与以下表达式完全相同
new java.util.Random
之后,新的伪随机数生成器可用于此方法的所有调用,但不能用于其他地方。
此方法是完全同步的,可允许多个线程使用而不出现错误。
但是,如果许多线程需要以极高的速率生成伪随机数,那么这可能会减少每个线程对拥有自己伪随机数生成器的争用。
2.java.util.Random
如果用相同的种子创建两个 Random 实例,则对每个实例进行相同的方法调用序列,它们将生成并返回相同的数字序列。
示例如下:
结果:
22
false
0.7726943110246928
22
false
0.34534388658004067
返回带正号的 double 值,该值大于等于 0.0 且小于 1.0。
返回值是一个伪随机选择的数,在该范围内(近似)均匀分布。
第一次调用该方法时,它将创建一个新的伪随机数生成器。
与以下表达式完全相同
new java.util.Random
之后,新的伪随机数生成器可用于此方法的所有调用,但不能用于其他地方。
此方法是完全同步的,可允许多个线程使用而不出现错误。
但是,如果许多线程需要以极高的速率生成伪随机数,那么这可能会减少每个线程对拥有自己伪随机数生成器的争用。
2.java.util.Random
如果用相同的种子创建两个 Random 实例,则对每个实例进行相同的方法调用序列,它们将生成并返回相同的数字序列。
示例如下:
Random rand1 = new Random(5);
System.out.println(rand1.nextInt(55));
System.out.println(rand1.nextBoolean());
System.out.println(Math.random());
Random rand2 = new Random(5);
System.out.println(rand2.nextInt(55));
System.out.println(rand2.nextBoolean());
System.out.println(Math.random());
结果:
22
false
0.7726943110246928
22
false
0.34534388658004067