Java随机数的产生方式
  在Java中,随机数的概念从广义上将,有三种。
  1、通过System.currentTimeMillis()来获取一个当前时间毫秒数的long型数字。
  2、通过Math.random()返回一个0到1之间的double值。
  3、通过Random类来产生一个随机数,这个是专业的Random工具类,功能强大。

java.util.Random类来产生一个随机数发生器。它有两种形式的构造函数,分别是Random()和Random(long seed)。
Random()此构造方法将随机数生成器的种子设置为某个值,该值与此构造方法的所有其他调用所用的值完全不同(网上有文章说是采用System.currentTimeMillis()作为种子,实测不确定,或许不是简单的用当前时间)。
Random(long seed)使用指定的seed作为发生器的种子。相同的种子产生相同的随机数。
随机数发生器(Random)对象产生以后,通过调用不同的method:nextInt()、nextLong()、nextFloat()、nextDouble()等获得不同类型随机数。

 

1 public static void main(String[] args)
2     {
3         for (int i = 0; i < 10; i++)
4         {
5             Random rand = new Random();
6             System.out.println("随机数" + i + ": " + rand.nextInt());
7             System.out.println("Time: " + System.currentTimeMillis());
8         }
9     }

打印结果可以看出,在相同的时间生成的随机数并不相同:

随机数0: 428923238
Time: 1446719287485
随机数1: -1644891094
Time: 1446719287485
随机数2: -2063294173
Time: 1446719287485
随机数3: -220798588
Time: 1446719287485
随机数4: -1036960660
Time: 1446719287485
随机数5: -2027516416
Time: 1446719287485
随机数6: 705879658
Time: 1446719287485
随机数7: 388111823
Time: 1446719287485
随机数8: 1685942599
Time: 1446719287485
随机数9: -1417505914
Time: 1446719287485