当前位置: 技术问答>java相关
一个数组调用的问题
来源: 互联网 发布时间:2015-02-14
本文导语: 我调试程序的时候发生这样的事情: 调用一个方法,返回数组。程序编译通过。 当进入方法中单步运行时,运行正常。 不进入方法中调试时,返回的数组每项都相同。 why? | 把Random rnd = n...
我调试程序的时候发生这样的事情:
调用一个方法,返回数组。程序编译通过。
当进入方法中单步运行时,运行正常。
不进入方法中调试时,返回的数组每项都相同。
why?
调用一个方法,返回数组。程序编译通过。
当进入方法中单步运行时,运行正常。
不进入方法中调试时,返回的数组每项都相同。
why?
|
把Random rnd = new Random();放到rndInt外面去,最好是Generate的静态类变量,
rndInt方法中只写return rnd.nextInt(n)即可。
原因是:Random()是伪随机的,它的构造函数是与本机时间相关的,不单步运行时,你的程序差不多肯定在1毫秒内结束,即所有的rndInt方法都运行在同一毫秒内,所以随机序列也肯定相同。
说得比较乱,不知道你听懂了没?
rndInt方法中只写return rnd.nextInt(n)即可。
原因是:Random()是伪随机的,它的构造函数是与本机时间相关的,不单步运行时,你的程序差不多肯定在1毫秒内结束,即所有的rndInt方法都运行在同一毫秒内,所以随机序列也肯定相同。
说得比较乱,不知道你听懂了没?