public class RandomUtil extends Object
| コンストラクタと説明 |
|---|
RandomUtil() |
| 修飾子とタイプ | メソッドと説明 |
|---|---|
static byte[] |
newBytes(int len,
Random rand) |
static Random |
newCollisionlessRandom()
seedの初期生成を工夫し、その際に起こりうるコリジョンを抑制したRandomオブジェクトを生成する。
|
public static Random newCollisionlessRandom()
通常のRandomオブジェクトの生成において、seedを省略した場合、ミリ秒精度の時刻が用いられる。 ミリ秒の精度(正しくはtick精度)の場合、同時に複数のRandomオブジェクトを生成したときには、 生成箇所が異なるマシンであってもseedが一致してしまうことが起こりうる。 これに対処するため、このメソッドでは、System.nanoTime() で取れるlong値に、IPアドレス (取得できない場合は、一時的に生成したObject)のhash値を足した値をseedに使用している。
public static byte[] newBytes(int len,
Random rand)
Copyright © 2017. All rights reserved.