首页 > 编程语言 > 详细

java.lang.Random误区

时间:2015-03-03 11:54:13      阅读:237      评论:0      收藏:0      [点我收藏+]

最近在开发中需要随机生成指定位数的随机数,想起来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每次都是随机的,而指定种子以后变成了固定值。

所以建议在需要随机生成随机数字时,不要指定种子。技术分享

本文出自 “java” 博客,请务必保留此出处http://zwbjava.blog.51cto.com/2789897/1616722

java.lang.Random误区

原文:http://zwbjava.blog.51cto.com/2789897/1616722

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!