java - 随机方法的效率

标签 java random instance performance

我最近读到,您不想在不必要时创建新实例。我不确定我是否明白它在说什么。问题是 LogCat 中重复了这一点:

08-09 17:12:11.300: D/dalvikvm(19620): GC_FOR_ALLOC freed 2281K, 23% free 9365K/12048K, paused 12ms, total 12ms

那么是不是有这个方法比较好:

public int rand(int i) {
    int rand = new Random().nextInt(i);
    return rand;
}

比使用此方法:

public int rand(int i) {
    return new Random().nextInt(i);
}

如果你经常调用 rand() 吗?为什么或者为什么不?感谢您帮助新手!

最佳答案

这样做:

class ... {

  private final Random dice = new Random();

  public int rand(int i) {
    return dice.nextInt(i);
  }

}

这样,您只需调用 new Random() 一次,而不是每次生成数字时都调用。

关于java - 随机方法的效率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18155888/

相关文章:

java - 如何创建包含不限于一个实例的数据的类对象的单个实例?

c# - 如何在 C# 中生成随机整数?

python - 在python中随机选择特定范围内具有特定倍数的数字

Java生成随机数字序列并随机访问序列元素

java - JUnit:调用每个@Test 方法之前的新实例。有什么好处?

path - 查找 JDK 路径并将其存储为 Java 中的字符串

java - 关于条件的 Hibernate Search 性能建议

java - 如何从数据集中删除某些列?

python - 在 Python 2 中向现有类的实例添加属性

python - Python 的 "is"运算符在 Go 中的等价物是什么?