Java获取随机数的几种方式

    xiaoxiao2023-10-22  175

    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); } }
    最新回复(0)