Java中生成随机数的方法

  介绍

这篇文章主要介绍了Java中生成随机数的方法,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获。下面让小编带着大家一起了解一下。

在Java中提供了三种使用一些内置方法和类生成随机数的方法,如下所示:

1, java.util.Random类

2, math . random方法:可以生成两类型的随机数。

3, ThreadLocalRandom类

下面我们就来看看具体Java是如何实现随机数的生成。

<强> 1,java.util。随机类

Java实用工具类库中的类:java.util。随机提供了产生各种类型随机数的方法。

要使用java.util.Random类生成随机数,我们必须首先创建此类的实例,然后使用该实例调用nextInt (), nextDouble (), nextLong()等方法。

我们可以使用java.util。随机类随机生成:整数,浮点数、双精度数,长整数,布尔运算数等类型的随机数。

我们可以将参数传递给方法,以便在要生成的数字范围上放置上限。例如,nextInt(6)将生成0到5(包括0和5)范围内的数字。

//随机数生成//使用java.util.Random;   进口java.util.Random;      公开课generateRandom {      公共静态void main (String参数[])   {//创建随机类的实例   随机兰德=new随机();//在0到999的范围内生成随机整数   int rand_int1=rand.nextInt (1000);   int rand_int2=rand.nextInt (1000);//输出随机整数   System.out.println(“随机整数:“+ rand_int1);   System.out.println(“随机整数:“+ rand_int2);//生成随机双精度数   双rand_dub1=rand.nextDouble ();   双rand_dub2=rand.nextDouble ();//输出随机双精度数   System.out.println(“随机双精度数:“+ rand_dub1);   System.out.println(“随机双精度数:“+ rand_dub2);   }   }

运行输出:

癑ava中生成随机数的方法"

<强> 2,Math . random方法

数学类包含用于执行各种数值运算的各种方法,例如计算取幂,对数等。这其中的一个方法:随机(),可以返回带有正号的双数,值大于或等于0.0且小于1.0,即取值范围是(0.0,1.0)的左闭右开区间。

随机()方法返回的值是伪随机选择的,在(0.0,1.0)的范围内(近似)均匀分布。

注:它只能生成两类型的随机数。

下面我们就通过Java代码介绍如何使用此方法产生随机数:

//Math . random()生成随机数   进口java.util。*;      公开课generateRandom   {   公共静态void main (String参数[])   {//随机双精度数的生成   System.out.println(“随机双精度数:“+ math . random ());   System.out.println(“随机双精度数:“+ math . random ());   }   }

运行结果:

癑ava中生成随机数的方法"

<强> 3,Java . util . concurrent。ThreadLocalRandom类

ThreadLocalRandom类是在java 1.7中引入的,提供并发产生随机数,能够解决多个线程发生的竞争争夺。可以生成整数、双精度,布尔等类型的随机数。

ThreadLocalRandom的主要实现细节:

1),使用一个普通的长而不是使用随机中的AtomicLong作为种子

2),不能自己创建ThreadLocalRandom实例,因为它的构造函数是私有的,我们可以使用它的静态方法ThreadLocalRandom.current ()

3),它是CPU缓存感知式的,使用8个长虚拟域来填充64位L1高速缓存行

下面我们就通过简单的java代码介绍如何使用这个类生成随机数:

//随机数的产生//使用java.util.concurrent.ThreadLocalRandom类   进口java.util.concurrent.ThreadLocalRandom;      公开课generateRandom   {   公共静态void main (String参数[])   {//在0到999的范围内生成随机整数   .nextInt int rand_int1=ThreadLocalRandom.current () ();   .nextInt int rand_int2=ThreadLocalRandom.current () ();//输出随机整数   System.out.println(随机整数:“;+ rand_int1);   System.out.println(随机整数:“;+ rand_int2);//生成随机双精度数   双rand_dub1=ThreadLocalRandom.current () .nextDouble ();   双rand_dub2=ThreadLocalRandom.current () .nextDouble ();//输出随机双精度数   System.out.println(随机双打:“;+ rand_dub1);   System.out.println(随机双打:“;+ rand_dub2);//生成随机布尔值   布尔rand_bool1=ThreadLocalRandom.current () .nextBoolean ();   布尔rand_bool2=ThreadLocalRandom.current () .nextBoolean ();//输出随机布尔值   System.out.println(随机布尔值:“;+ rand_bool1);   System.out.println(随机布尔值:“;+ rand_bool2);   }   }

Java中生成随机数的方法