其实47就是一个种子数, 没有其他特殊的含义
通过提供的种子数,按照一定的算法生成随机数序列
1.指定种子数, 每一次执行获得的随机数相同
通过在创建Random对象时提供种子(用于随机数生成器的初始化值, 随机数生成器对于特定的种子值总是产生相同的随机数序列), 就可以在每一次的执行程序时生成相同的随机数, 因此输出是可验证的
注: 提供了种子的随机数生成器, 上面所说的生成相同随机数是相对于每一次执行程序, 而非在一次执行程序的过程中next获得的随机数
2.未指定种子数, 每一次执行获得的随机数不相同
对于Random类对象,如果在创建过程中没有传递任何参数,那么Java就会按一定的算法生成一个数作为随机数生成
JDK1.6中是按下面的方式生成种子的
/**
* Creates a new random number generator. This constructor sets
* the seed of the random number generator to a value very likely
* to be distinct from any other invocation of this constructor.
*/
//public Random() { this(++seedUniquifier + System.nanoTime()); }
//private static volatile long seedUniquifier = 8682522807148012L;
System.nanoTime() 说明:
/* @return The current value of the system timer, in nanoseconds.
* @since 1.5
*/
// public static native long nanoTime();
790

被折叠的 条评论
为什么被折叠?



