解决原始JDK Random对象低效原因

“Random”对象应该被重用,因为Random每次创建一个随机值时是低效的,而且根据JDK的不同,可能会产生非随机的数字。为了提高效率和随机性,创建一个单一的随机变量,然后存储和重用它。
Random()构造函数每次都尝试用不同的值设置种子。然而不能保证种子是随机的,甚至是均匀分布的。一些JDK将使用当前时间作为种子,这使得生成的数字根本不是随机的。
该规则发现在每次调用方法并将其分配给本地随机变量时创建一个新的随机变量的情况。

Random random=new Random();

不合规的代码示例

public void doSomethingCommon() {Random rand = new Random();

使用原生JDK Random()每次调用int rValue = rand.nextInt()创建新实例低效。

建议方案

 private Random rand = SecureRandom.getInstanceStrong(); public void doSomethingCommon() {   int rValue = this.rand.nextInt();

Exceptions

如果一个类在构造函数或静态主函数中使用了Random,那么这个规则就会忽略它。

“Random“ objects should be reused解决 Random() 低效问题相关推荐

  1. python中random什么意思_python中的random

    random.randint(a,b) 用于生成一个指定范围内的整数,a为下限,b为上限,生成的随机整数a<=n<=b;若a=b,则n=a:若a>b,报错 import random ...

  2. python中random库_python标准库之random模块

    Python中的random模块用于生成随机数. 下面具体介绍random模块的功能: 1.random.random() #用于生成一个0到1的 随机浮点数:0<= n < 1.0 1 ...

  3. python 发红包import random用redenv_python 常用模块之random,os,sys 模块

    python 常用模块random,os,sys 模块 python全栈开发OS模块,Random模块,sys模块 OS模块 os模块是与操作系统交互的一个接口,常见的函数以及用法见一下代码: #OS ...

  4. “ORA-28007: the password cannot be reused”解决

    "ORA-28007: the password cannot be reused"解决 SELECT username,PROFILE FROM dba_users where ...

  5. python中random的意思_Python中的random模块

    random.random random.random() 会生成一个0.0~1.0的浮点数 random.uniform  (单词意思:制服,军服,统一的,一样的) random.uniform(形 ...

  6. random java怎么用_java中Random使用步骤是怎样的?具体怎么做?

    在现代社会,java编程语言的使用几乎已经渗透到我们工作与生活的方方面面了,这也意味着时代的更新变化.java中有很多比较细碎的知识点需要花时间去专研,比如说java中random的相关知识,一起来看 ...

  7. python random 和numpy random_Python中numpy.random和random.random之间的区别

    我在Python中有一个大脚本. 我在其他人的代码中得到了启发,所以最终我在某些方面使用了numpy.random模块(例如,用于创建从二项式分布中获取的随机数数组),而在其他地方,我使用了模块ran ...

  8. java random api_API中的Scanner、Random、ArrayList、String类

    API概述 API(Application Programmming Interface)应用程序编程接口,javaAPI对于程序员来说就是一本可以检索查找的[字典],是JDK官方提供给程序开发者使用 ...

  9. 202001 ora-00922: missing or invalid option 密码修改提示;“ORA-28007: the password cannot be reused”解决

    也是够了! 跟密码打了一个上午的仗. 一.密码修改时,若有特殊字符,会提示: ora-00922: missing or invalid option 加 双引号 即可: alter user use ...

最新文章

  1. Nginx动态路由的新姿势:使用Go取代lua
  2. pmcaff智囊团开通啦!能人大拿集聚地,名额有限,速度哟~
  3. 智能实验室-全能优化(Guardio) 4.0.0.700 新春贺岁版
  4. java指针操作符_rxjava 操作符大全
  5. oracle表格颜色,如何在oracle中使用光标更新特定颜色
  6. html5游戏引擎-Pharse.js学习笔记(一)
  7. nyoj 寻找最大数
  8. 论文浅尝 | Data Intelligence第4期正式上线啦
  9. [linux]LINUX程序设计cc1--入门
  10. php 中文手册下载
  11. 高mysql千万级大数据SQL查询优化几条经验
  12. ToLua 入门05_AccessingLuaVariables
  13. 基于Java毕业设计校园社团管理平台演示录像2021源码+系统+mysql+lw文档+部署软件
  14. 前端后端路径斜杆问题
  15. Windows的文件命名长度的坑
  16. python驱动photoshop_将photoshop纳入基于python的pipeline接口系统
  17. Linux会产生磁盘碎片吗,Linux不需要磁盘整理:碎片的来源
  18. 亲测软著申请,时间线是这样的。
  19. 试用补单流程,商家如何通过试用进行补单,通过试用补单的好处优势
  20. 10 12 14bit图像存储格式

热门文章

  1. Python Resource
  2. VS 2017 解决 C2001错误 常量中有换行符
  3. 传奇GOM引擎登陆器配置教程 GOM登陆器配置详解 GOM引擎登陆器图文教程
  4. ERR! configure error gyp ERR! stack Error: Can't find Python executable python
  5. mysql的英文文献_mysql数据库英文文献.doc
  6. Python可以制作植物大战僵尸,你还不知道吗?
  7. 业务逻辑漏洞之水平越权和垂直越权
  8. PHP两种调用接口方式
  9. 如何用python画散点图矩阵_Python的散点图竟然能画这么好看
  10. For循环的简单实例