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位作爲種子值。
*隨機數:使用公式計算出來的數列,同樣的初始值(又成爲“種子”)會產生同樣的數列,並且數列是循環的,雖然週期很長。