美文网首页
Java 生成随机数

Java 生成随机数

作者: 三眼卡夫卡a | 来源:发表于2020-02-27 14:53 被阅读0次

1   java 1.0 中就存在的方法  Random

优点:  最老的API,兼容旧系统,易用。

缺点:  可预测,会被破解。 随着Java版本迭代,在很多场景下有更合适的方案。

2   java 1.7 新增的随机类 ThreadLocalRandom

根据源码的解释,这个类是依附于线程本身的。所以在多线程的情况下,其效率要优于Random。

我自己试了一下 生成效率差不多快了1/3.

 优点: 线程状态下效率很高。

 缺点: 不适合多线程随机数的情况(不过我现在还没遇到这种场景)。

3  SecureRandom  

看名字也看的出来 这个是安全的随机数实现。  看了一下源码注释:

这个类的具体算法实现 provider 有Java默认的算法实现,你也可以自己定义这个算法,

但是要求是必须达到 FTPS-140-2(我也不知道具体什么鬼,听上去很高大上)标准的算法实现。

总之要求就是这个算法是不可预测的。

优点: 安全,不可预测。

缺点: 生成效率低了很多。

哦。 对了。还有一点需要注意,如果你的程序可能会运行在linux平台上,那么这两个方法你要慎用。

generateSeed和nextBytes因为这两个方法可能会被阻塞一段时间。因为他们的随机基于

/dev/random 目录。而这个目录收集系统噪声来实现真随机。因此可能会造成阻塞。

相关文章

  • java生成随机数的方法是什么

    java生成随机数的方法是什么 我们可以使用Java中提供的Math类来生成随机数。 Math类在java.lan...

  • 多线程环境下生成随机数

    生成伪随机数据 Java里有伪随机型和安全型两种随机数生成器。伪随机生成器根据特定公式将seed转换成新的伪随机数...

  • utils package

    main--utils--ResultVOUtil.java 生成随机数 main--utils--keyUtil...

  • java如何生成1到100之间的随机数

    java如何生成1到100之间的随机数 可以使用random()方法,该方法用于返回一个随机数,随机数范围为 0....

  • Java常用类库-Random类

    Random 类的实例用于生成伪随机数。其在 java.util 包下,前几节的类都在 java.lang 包下,...

  • 随机数的生成(Java)

    Random 类是JAVA中用于产生的随机数的类 。 注意:相同种子数的Random对象,对应相同次数生成的随机数...

  • 在以太坊生成随机数的几种方式(含代码)

    一、什么是随机数 随机数都是由随机数生成器(Random Number Generator)生成的。随机数分为”真...

  • 生成随机数

    两个C函数 rand()函数生成的随机数是伪随机数,所谓伪随机数,指的是程序每次运行,生成的随机数都是不变的,生成...

  • JAVA生成随机数

    生成特定区间随机数 使用Random类 Random 对象的 nextInt(int) 方法,将生成 0 ~ 参数...

  • Java 生成随机数

    1 java 1.0 中就存在的方法 Random 优点: 最老的API,兼容旧系统,易用。 缺点: 可预测,会...

网友评论

      本文标题:Java 生成随机数

      本文链接:https://www.haomeiwen.com/subject/fmothhtx.html