我想了解使用随机数生成器与System.currentTimeMillis()
作为种子并仅使用默认构造函数。也就是说,这之间有什么区别:
Random rand = new Random(System.currentTimeMillis());
和这个:
Random rand = new Random();
我知道这些数字是伪随机的,但我还没有完全理解细节,以及它们是如何产生的,在当前时间用作种子时和使用默认构造函数时获得的“随机性”级别之间。
如果您希望随机序列在运行之间相同,您可以指定种子。通常你不希望这种情况发生,所以你每次运行都使用不同的种子,System.currentTimeMillis()
是常用的合理种子。
如果您正在编写一个多线程程序,其中多个线程将初始化Random
同时对象,那么你可能想避免使用System.currentTimeMillis()
而是让 Java 使用它自己的初始化。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)