Random类:专门用于生成一个伪随机数,它有两个构造器:一个构造器使用默认的种子,另一个构造器需要程序员显式传入一个long型整数的种子。
public static void main(String[] args) {
Random random=new Random();
System.out.println(random.nextBoolean());//生成布尔型的伪随机数
byte[] buffer=new byte[16];
random.nextBytes(buffer);//生成16个伪随机数的数组
System.out.println(Arrays.toString(buffer));
System.out.println(random.nextDouble());//生成0.0到1.0之间的伪随机double数
System.out.println(random.nextInt(20));//生成0~20之间的伪随机数
}
Random使用48位的种子,如果这个类的两个实例是用同一个种子创建,对它们以同样的顺序调用方法,则它们会产生相同的数字序列。也就是说,Random产生的数字并不是真正随机的,而是一种伪随机数。
为了避免这种情况,推荐使用当前时间作为Random对象的种子:Random r=new Random(System.cuyyentTimeMillis());