随机字符串

256 阅读1分钟

Math.random()

一个伪随机 double大于或等于 0.0并小于 1.0

线程安全

java.util.Random

该类的实例用于生成伪随机数的流。 该类使用48位种子,其使用线性同余公式进行修改。 (见Donald Knuth, “计算机编程艺术”,第2卷 ,第3.2.1节)

如果使用相同的种子创建两个Random Random ,并且对每个实例进行相同的方法调用序列,则它们将生成并返回相同的数字序列。 为了保证此属性,为Random类Random 。 为了Java代码的绝对可移植性,Java实现必须使用这里所示的所有算法为Random类。 然而,Random类的子类Random使用其他算法,只要它们遵守所有方法的一般合同。

Random类实现的Random使用protected实用程序方法,每次调用可以提供多达32个伪随机生成位。

许多应用程序会发现方法Math.random()使用起来更简单。

java.util.Random的java.util.Random是线程安全的。 但是,跨线程的同时使用java.util.Random实例可能会遇到争用,从而导致性能下降。 在多线程设计中考虑使用ThreadLocalRandom

java.util.Random的java.util.Random不是加密安全的。 考虑使用SecureRandom获取一个加密安全的伪随机数生成器,供安全敏感应用程序使用。

common-lang3 RandomStringUtils

RandomStringUtils.randomAlphanumeric(10)