JAVA基础类库(三)-----Random与java7的ThreadLocalRandom
Random
import java.util.Random; import java.util.Arrays; public class a{ public static void main(String[] args){ Random r = new Random(); //true 或 false System.out.println(r.nextBoolean()); byte[] buffer = new byte[16]; r.nextBytes(buffer); System.out.println(Arrays.toString(buffer)); //int整数取值范围内的伪随机整数 System.out.println(r.nextInt()); //0~25范围内的伪随机整数 System.out.println(r.nextInt(25)); //long整数取值范围内的伪随机整数 System.out.println(r.nextLong()); //0.0~1.0的伪随机float数 System.out.println(r.nextFloat()); //0.0~1.0的伪随机double数 System.out.println(r.nextDouble()); } }
Random使用一个48位的种子,如果这个类的两个实例是用同一个种子创建的,对它们以同样的顺序调用方法,则它们会产生相同的数字序列
//为了避免两个Random对象产生相同的数字序列,通常推荐使用当前时间作为Random对象的种子 Random rand = new Random(System.currentTimeMillis());
ThreadLocalRandom
在多线程环境下使用ThreadLocalRandom的方式与Random基本类似
ThreadLocalRandom rand = ThreadLocalRandom.current(); //生成一个4~20之间的伪随机整数 int val1= rand.nextInt(4,20); //生成一个2.0~10.0之间的伪随机浮点数 int val2 = rand.nextDouble(2.0,10.0);
浙公网安备 33010602011771号