Java Random.nextDouble,nextFloat,nextLong,nextBoolean,nextBytes随机数
java中Random.nextDouble()用于返回一个大于或等于 0.0 且小于 1.0 的随机浮点数;Random.nextFloat()返回的是0.0-1.0之间的随机数;Random.nextLong()返回-9223372036854775808——9223372036854775807随机数;Random.nextBoolean()随机返回true/false;Random.nextBoolean()会为一个byte类型的数组随机赋值。
定义
double nextDouble() //返回在0.0和1.0之间均匀分布的随机数double值。 float nextFloat() //返回在0.0和1.0之间均匀分布随机数float值。 long nextLong() //返回随机数生成器序列的均匀分布的随机数long 值。 boolean nextBoolean() //返回随机数生成器序列的均匀分布的随机数boolean值。 void nextBytes(byte[] bytes) //生成随机字节并将其置于用户提供的 byte 数组中。
源码
public double nextDouble() { return (((long)(next(26)) << 27) + next(27)) / (double)(1L << 53); } public long nextLong() { return ((long)(next(32)) << 32) + next(32); } public float nextFloat() { return next(24) / ((float)(1 << 24)); } public boolean nextBoolean() { return next(1) != 0; }
例子
public class RandomDemo { public static void main(String[] args) throws Exception { Random random = new Random(); System.out.println("Long:"+random.nextLong()); System.out.println("double:"+random.nextDouble()); System.out.println("float:"+random.nextFloat()); System.out.println("boolean:"+random.nextBoolean()); byte[] bytes = new byte[5]; random.nextBytes(bytes); for (int i = 0; i < bytes.length; i++) { byte aByte = bytes[i]; System.out.print(aByte+"\n"); } } }
Random.nextBytes()中byte的取值范围为 -128到127,所以也就是说会为一个byte类型的数组在-128,127这个区间内重新随机赋值。
版权声明:本文为JAVASCHOOL原创文章,未经本站允许不得转载。