Java 对象实例之间的随机共享?

Java 对象实例之间的随机共享?,java,random,Java,Random,我想创建一个对象的许多实例,这些实例使用一个随机数作为其初始化的一部分,但是如果我在一个循环中创建大量这些对象,它们中的大多数都是相同的(我认为)。有人能澄清一下吗?如果我的假设是正确的,有没有办法让它们共享一个随机对象?您的对象可以共享一个java.util.Random实例。事实上,与每次创建Random的新实例相比,这将为您提供最佳性能 如果你处理多个线程,即使java .UTI.Actudio是线程安全的,你也应该考虑使用在JDK 1.7中引入的 THealLoad随机/,因为它将显著减

我想创建一个对象的许多实例,这些实例使用一个随机数作为其初始化的一部分,但是如果我在一个循环中创建大量这些对象,它们中的大多数都是相同的(我认为)。有人能澄清一下吗?如果我的假设是正确的,有没有办法让它们共享一个随机对象?

您的对象可以共享一个
java.util.Random
实例。事实上,与每次创建
Random
的新实例相比,这将为您提供最佳性能

如果你处理多个线程,即使java .UTI.Actudio是线程安全的,你也应该考虑使用在JDK 1.7中引入的<代码> THealLoad随机/<代码>,因为它将显著减少线程争用。 例如:

public class ExampleClass {
    private static final Random random = new Random();

    public ExampleClass() {
        System.out.println("Constructor using random: " + random.nextInt(100));
    }

    public void methodThatUsesRandom() {
        System.out.println("Method using random: " + random.nextInt(100));
    }
}

共享同一个随机对象不会有帮助。即使来自同一对象,也有可能获得重复的随机数。这取决于随机数的范围和随机数生成器的质量(周期长度)。问题有点模糊,但是:一般来说,代码应该使用相同的随机实例。实例的共享方式与任何对象的共享方式相同。谢谢!正是我想要的!我怎样才能做到这一点呢?有几种方法可以做到这一点。一种方法是在类中定义一个
静态final
实例,然后在方法中使用它。请参阅我上面的帖子以获取示例。