Random类专门用于生成一个伪随机数的类,其产生的随机数是根据种子和顺序决定 的;ThreadLocalRandom类是Java 7新增的一个类,它是Random的增强版。在并发 访问的环境下,呆证系统具有更好的线程安全性
构造器:
Random()—创建一个新的随机数生成器。
Random(long seed)—使用单个 long 种子创建一个新的随机数生成器。
常用方法:
1、 nextBoolean()—返回下一个伪随机数,它是取自此随机数生成器序列的均匀分布的 boolean 值。返回值类型:boolean
例子:
Random rand = new Random();
System.out.println("rand.nextBoolean() = " + rand.nextBoolean());
2、 nextBytes(byte[] bytes)—生成随机字节并将其置于用户提供的 byte 数组中。返回值类型:void
例子:
byte[] buffer = new byte[8];
rand.nextBytes(buffer);
System.out.println("rand.nextBytes(buffer) = " + Arrays.toString(buffer))
3、 nextDouble()—返回下一个伪随机数,它是取自此随机数生成器序列的、在 0.0 和 1.0 之间均匀分布的 double 值。返回值类型:double
例子:
// 生成0.0~1.0之间的伪随机double数
System.out.println("rand.nextDouble() = " + rand.nextDouble());
4、 nextFloat()—返回下一个伪随机数,它是取自此随机数生成器序列的、在 0.0 和 1.0 之间均匀分布的 float 值。返回值类型:float
例子:
// 生成0.0~1.0之间的伪随机float数
System.out.println("rand.nextFloat() = " + rand.nextFloat());
5、 nextGaussian()—返回下一个伪随机数,它是取自此随机数生成器序列的、呈高斯 (“正态”)分布的 double 值,其平均值是 0.0,标准差是 1.0。返回值类型:double
例子:
// 生成平均值是 0.0,标准差是 1.0的伪高斯数
System.out.println("rand.nextGaussian() = " + rand.nextGaussian());
6、 nextInt()—返回下一个伪随机数,它是此随机数生成器的序列中均匀分布的 int 值。返回值类型:int
例子:
// 生成一个处于int整数取值范围的伪随机整数
System.out.println("rand.nextInt() = " + rand.nextInt());
7、 nextInt(int n)—返回一个伪随机数,它是取自此随机数生成器序列的、在 0(包 括)和指定值(不包括)之间均匀分布的 int 值。返回值类型:int
例子:
// 生成0~26之间的伪随机整数
System.out.println("rand.nextInt(26) = " + rand.nextInt(26));
8、 nextLong()—返回下一个伪随机数,它是取自此随机数生成器序列的均匀分布 的 long 值。返回值类型:long
例子:
// 生成一个处于long整数取值范围的伪随机整数
System.out.println("rand.nextLong() = " + rand.nextLong());