Java Random类、ThreadLocalRandom类

Wesley13
• 阅读 885

Random和ThreadLocalRandom类均用于生成伪随机数。

Random的构造函数:

Random()     默认以系统当前时间为种子,相当于Random(System.currentTimeMillis())

Random(long  seed)

常用方法:

nextXxx()    生成对应类型的伪随机数。

示例:

Random  random=new Random();

int x=random.nextInt();     //生成一个int范围内的伪随机数

x=random.next(10);   //生成一个[0,10)内的伪随机数

如果使用的是同一个种子,则生成的伪随机数相同。

ThreadLocalRandom是Random的加强版,在并发访问的情况下,使用ThreadLocalRandom代替Random,可以减少线程间的资源竞争,从而保证系统具有更好的线程安全。

ThreadLocalRandom rand=ThreadLocalRandom.current();    //使用静态方法获取对象

rand.nextXxx()

rand.next(x)

rand.next(x,y)

ThreadLocalRandom生成随机数的方法更丰富,因为ThreadLocalRandom提供了更多的重载方法,限制随机数的范围。

Random、ThreadLocalRandom生成的都是伪随机数。

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Karen110 Karen110
3年前
一篇文章带你了解JavaScript随机数
一、Math.random()Math.random()返回0到1之间的随机数(包括0,不包括1)。语法:Math.random();//returnsarandomnumber代码:项目JavaScriptMath.random()单击按钮以显示0(含)和1(不含)之间的随
待兔 待兔
5个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
风花雪月 风花雪月
3年前
python-随机函数
random.sample()可以从指定的序列中,随机的截取指定长度的片断,不作原地修改,不重复。random.random()函数是这个模块中最常用的方法了,它会生成一个随机的浮点数,范围是在0.01.0之间。random.uniform()正好弥补了上面函数的不足,它可以设定浮点数的范围,一个是上限,一个是下限。random.randint()随机生一个
liam liam
1年前
Mock 语法讲解
是生成随机数据,拦截Ajax请求的JavaScript库。本文来介绍下Mock的常用语法。模拟数据生成随机数据Mock.Random.boolean()生成一个随机的布尔值。例如:返回值为true或false。Mock.Random.integer(min
Stella981 Stella981
3年前
Fortran根据系统时间生成随机数
FORTRAN中用于产生随机数的子程序有random\_seed和random\_number,其中random\_seed产生seed,random\_number根据seed的值产生随机数。当random\_seed()的参数为空时,其会给出一个默认的seed值,这意味着每次调用时产生的随机数都是相同的。(这也是有用的,这意味着你每次在执行程序的时候,会
Wesley13 Wesley13
3年前
Java 生成随机数
Java中常用的两种产生随机数的方法一、java.lang.Math类中的random()方法;调用这个Math.random()函数能够返回带正号的double值,该值大于等于0.0且小于1.0,即取值范围是\0.0,1.0)的左闭右开区间,返回值是一个伪随机选择的数,在该范围内(近似)均匀
Wesley13 Wesley13
3年前
3springboot:springboot配置文件(配置文件占位符、Profile、配置文件的加载位置)
1.配置文件占位符RaandomValuePropertySourcr:配置文件可以使用随机数    ${random.value}    ${random.int} ${random.long}${random.int(10)}   ${random.int\1024,65535\}属性配置占位符
Stella981 Stella981
3年前
Spring Boot 配置随机数技巧
SpringBoot支持在系统加载的时候配置随机数。添加config/random.properties文件,添加以下内容:随机32位MD5字符串user.random.secret${random.value}随机int数字user.random.intNumber${random.int}
小万哥 小万哥
6个月前
卡方分布和 Zipf 分布模拟及 Seaborn 可视化教程
卡方分布是统计学中的一种连续概率分布,用于假设检验,形状由自由度(df)决定。自由度越大,分布越平缓。NumPy的random.chisquare()可生成卡方分布随机数。Seaborn能可视化卡方分布。练习包括模拟不同自由度的卡方分布、进行卡方检验。瑞利分布描述信号处理中幅度分布,参数为尺度(scale)。Zipf分布常用于自然语言等幂律特征数据,参数a控制形状。NumPy的random.zipf()生成Zipf分布随机数。