登录  /  注册
首页 > Java > java教程 > 正文

Java中如何生成随机数

青灯夜游
发布: 2018-11-21 15:10:36
原创
57582人浏览过

java中如何生成随机数?本篇文章就给大家介绍在java中生成随机数的方法。有一定的参考价值,有需要的朋友可以参考一下,希望对你们有所帮助。

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

1、java.util.Random类

2、Math.random方法:可以生成double类型的随机数。

3、ThreadLocalRandom类

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

1、java.util.Random类

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

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

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

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

// 随机数生成
// 使用java.util.Random; 
import java.util.Random; 

public class generateRandom{ 

	public static void main(String args[]) 
	{ 
		// 创建随机类的实例
		Random rand = new Random(); 

		// 在0到999范围内生成随机整数
		int rand_int1 = rand.nextInt(1000); 
		int rand_int2 = rand.nextInt(1000); 

		// 输出随机整数
		System.out.println("随机整数: "+rand_int1); 
		System.out.println("随机整数: "+rand_int2); 

		// 生成随机双精度数
		double rand_dub1 = rand.nextDouble(); 
		double rand_dub2 = rand.nextDouble(); 

		// 输出随机双精度数
		System.out.println("随机双精度数: "+rand_dub1); 
		System.out.println("随机双精度数: "+rand_dub2); 
	} 
}
登录后复制

运行输出:

2.jpg

2、Math.random方法

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

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

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

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

// Math.random() 生成随机数
import java.util.*; 

public class generateRandom 
{ 
	public static void main(String args[]) 
	{ 
		// 随机双精度数的生成
		System.out.println("随机双精度数: " + Math.random()); 
		System.out.println("随机双精度数: " + Math.random()); 
	} 
}
登录后复制

运行结果:

2.jpg

3、java.util.concurrent.ThreadLocalRandom类

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

ThreadLocalRandom的主要实现细节:

1)、使用一个普通的long而不是使用Random中的AtomicLong作为seed

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

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

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

// 随机数的产生
// 使用java.util.concurrent.ThreadLocalRandom类
import java.util.concurrent.ThreadLocalRandom; 

public class generateRandom 
{ 
	public static void main(String args[]) 
	{ 
		// 在0到999范围内生成随机整数
		int rand_int1 = ThreadLocalRandom.current().nextInt(); 
		int rand_int2 = ThreadLocalRandom.current().nextInt(); 

		// 输出随机整数
		System.out.println("Random Integers: " + rand_int1); 
		System.out.println("Random Integers: " + rand_int2); 

		// 生成随机双精度数
		double rand_dub1 = ThreadLocalRandom.current().nextDouble(); 
		double rand_dub2 = ThreadLocalRandom.current().nextDouble(); 

		// 输出随机双精度数
		System.out.println("Random Doubles: " + rand_dub1); 
		System.out.println("Random Doubles: " + rand_dub2); 

		// 生成随机布尔值
		boolean rand_bool1 = ThreadLocalRandom.current().nextBoolean(); 
		boolean rand_bool2 = ThreadLocalRandom.current().nextBoolean(); 

		// 输出随机布尔值
		System.out.println("Random Booleans: " + rand_bool1); 
		System.out.println("Random Booleans: " + rand_bool2); 
	} 
}
登录后复制

运行输出:

3.jpg

总结:以上就是本篇文章的全部内容,希望能对大家的学习有所帮助。更多相关视频教程,请访问:Java教程

以上就是Java中如何生成随机数的详细内容,更多请关注php中文网其它相关文章!

智能AI问答
PHP中文网智能助手能迅速回答你的编程问题,提供实时的代码和解决方案,帮助你解决各种难题。不仅如此,它还能提供编程资源和学习指导,帮助你快速提升编程技能。无论你是初学者还是专业人士,AI智能助手都能成为你的可靠助手,助力你在编程领域取得更大的成就。
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
最新问题
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2024 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号