public Random(long seed){}
seed是种子,使用单个long种子创建一个新的随机数生成器。该种子是伪随机数生成器的内部状态的初始值,该生成器可通过方法next(int)维护。seed会做为生成随机数的某个条件,也是说seed和将要产生的随机数有某种关系!
protected int next(int bits)
将种子自动更新为(seed * 0x5DEECE66DL + 0xBL) & ((1L << 48) - 1)
并返回(int)(seed >>> (48 - bits))
Random random = new Random(seed); 等同于 Random random = new Random();random.setSeed(seed);
将种子自动更新为(seed ^ 0x5DEECE66DL) & ((1L << 48) - 1)
setSeed只使用48位的给定种子,通常重写方法可能使用的是long,所以使用的是64位作为种子值。
*随机数:使用公式计算出来的数列,同样的初始值(又成为“种子”)会产生同样的数列,并且数列是循环的,虽然周期很长。