【发布时间】:2016-09-11 19:18:03
【问题描述】:
假设您有一个 Java 代码,其中您正在使用一个 Random 对象,并使用常量种子进行初始化。在您的代码中,您使用 Random 对象来生成不同的伪随机整数。您没有使用多线程。代码的不同执行是否可能有不同的结果?例如,如果Java编译器为了优化代码而以某种随机方式删除了Random对象的任何冗余调用,那么每次重新编译代码时执行都会有所不同。
【问题讨论】:
-
程序是否有任何输入会改变其执行顺序?
-
如果你在不同的 JVM 上运行它可以。我在实践中看到过这种情况。