为什么ThreadLocalRandom类中的某些方法不在Random类中?

时间:2018-01-08 14:26:19

标签: java random

jdk 1.7中引入了ThreadLocalRandom类。除了java.util.Random中已有的方法之外,它还有一些方便的方法,例如nextInt(least, bound)nextLong(n)。是否有任何原因将这些内容添加到java.util.Random中?毕竟,并不是因为他们不想触摸Random类,因为他们在Java 8中添加了大量新方法。

我正在寻找任何客观的技术原因(而不是意见)。

1 个答案:

答案 0 :(得分:1)

我认为没有技术原因。这些方法可以在1.7中添加。我想java.util.Random半推荐使用ThreadLocalRandom&由于过度同步导致SecureRandom - 就像Hashtable&向量。 Java8中的新流方法仅添加到java.util.Random,因为它是其他两个RNG的超类,没有像java.util.Collection这样的单独接口。