码迷,mamicode.com
首页 > 编程语言 > 详细

java.lang.Random误区

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

标签: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每次都是随机的,而指定种子以后变成了固定值。

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

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

java.lang.Random误区

标签:random

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!