-
1、Random类
构造方法:Random(); 个人建议使用无参构造方法 方法:int nextInt(int x);
返回下一个伪随机数,从这个随机数发生器的序列中均匀分布 int值。 -
2、Math.random();是令系统随机选取大于等于0.0,且小于 1.0 的伪随机 double 值
-
3、在JDK7中,java.util.concurrent包含了一个相当便利的类,ThreadLocalRandom,当应用程序期望在多个线程或ForkJoinTasks中使用随机数时。
对于并发访问,使用TheadLocalRandom代替Math.random()可以减少竞争,从而获得更好的性能。
你可以调用ThreadLocalRandom.current(), 然后调用它的其中一个方法去获取一个随机数即可 -
4、UUID是jdk1.5中新增的一个类,在java.util下,用它可以产生一个号称全球唯一的ID.
UUID是由一个十六位的数字组成,表现出来的形式例如 550E8400-E29B-11D4-A716-446655440000
import java.util.Random;
import java.util.UUID;
import java.util.concurrent.ThreadLocalRandom;
/**
* 需求:利用java代码,生成10-100之间的随机数
*/
public class Demo01 {
public static void main(String[] args) {
// 第一种:这里需要实例化一个Randam类,这里需要导包的,注意是util下的:java.util.Random;
Random random = new Random();
// nextInt() 返回下一个伪随机数,从这个随机数发生器的序列中均匀分布 int值。
int ran1 = random.nextInt(91) + 10;// nextInt(91)产生一个1,90之间的随机整数
System.out.println(ran1);
// 第二种:使用Math.random
int ran2 = (int) (Math.random() * 91 + 10);// Math.random():获取0.0,1.0的随机小数
System.out.println(ran2);
/** 第三种:Java 7之前我们使用Math.random()产生随机数,使用原子变量来保存当前的种子,
* 这样两个线程同时调用序列时得到的是伪随机数,而不是相同数量的两倍。
*/
ThreadLocalRandom threadLocalRandom = ThreadLocalRandom.current();
int ran3 = threadLocalRandom.nextInt(10, 91);
System.out.println(ran3);
// 第四种:UUID,全球唯一,不重复
String uuid = UUID.randomUUID().toString();
uuid = uuid.replace("-", "");
System.out.println(uuid);
}
}