java random 提示错误_java.lang.Random误区

最近在开发中需要随机生成指定位数的随机数,想起来random类有一个误区,再次写出来让大家在开发中避免犯类似的错误。

在java中对于Random类想必大家都知道是用来产生随机数的,但是稍有不慎就可能出现错误。

例如:public static void main(String[] args) {

Random random = new Random();

System.err.println(random.nextInt(10));

System.err.println(random.nextInt(10));

System.err.println(random.nextInt(10));

System.err.println(random.nextInt(10));

System.err.println(random.nextInt(10));

}

这段代码用来生成5个10以内的随机数,运行可以发现每次的值都不同。

跟下边这段代码比较:public static void main(String[] args) {

Random random = new Random(10);

System.err.println(random.nextInt(10));

System.err.println(random.nextInt(10));

System.err.println(random.nextInt(10));

System.err.println(random.nextInt(10));

System.err.println(random.nextInt(10));

}

通过多次运行你可以发现每次的结果都是一样的,在我电脑上每次的结果都是

3

0

3

0

6

通过比较两端代码可以发现唯一不一样的地方就是在创建random时是否指定了种子。没有指定种子的random每次都是随机的,而指定种子以后变成了固定值。

所以建议在需要随机生成随机数字时,不要指定种子。72c063e9cc723e26686b04497919617b.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值