Random的用法

来源:互联网 发布:淘宝飞猪靠谱吗 编辑:程序博客网 时间:2024/05/18 00:39


  Random random=new Random(47);
  int id=random.nextInt();

每次值都是一样的,因为创建构造函数时,Random定义的某一个值指定了

  Random random=new Random();
  int id=random.nextInt();

每次值不一样,因为创建构造函数时,使用的是当前系统时间给Random中某一个变量赋值

    public Random() {
        this(seedUniquifier() ^ System.nanoTime());
    }

//种子构造函数,构造函数有值时,seed将会确定。所以每次的值一样。没值时就取系统时间,每次都不同

    public Random(long seed) {
        if (getClass() == Random.class)
            this.seed = new AtomicLong(initialScramble(seed));
        else {
            // subclass might have overriden setSeed
            this.seed = new AtomicLong();
            setSeed(seed);
        }
    }