随机数的产生在一些代码中很常用,也是我们必须要掌握的。而java中产生随机数的方法主要有三种:

第一种:new Random()

第二种:Math.random()

第三种:currentTimeMillis()

第一种需要借助java.util.Random类来产生一个随机数发生器,也是最常用的一种,构造函数有两个,Random()和Random(long seed)。第一个就是以当前时间为默认种子,第二个是以指定的种子值进行。产生之后,借助不同的语句产生不同类型的数。

种子就是产生随机数的第一次使用值,机制是通过一个函数,将这个种子的值转化为随机数空间中的某一个点上,并且产生的随机数均匀的散布在空间中。以后产生的随机数都与前一个随机数有关。以代码为例。

public static void main(String[] args){  Random r = new Random(1);  for(int i=0 ; i<5 ; i++)  {    int ran1 = r.nextInt(100);    System.out.println(ran1);  }}

在我的编译器下产生的五个数均为85,88,47,13,54,如果采用Random r = new Random(),产生的随机数就不同,这就是确定种子导致的结果。

第二种方法返回的数值是[0.0,1.0)的double型数值,由于double类数的精度很高,可以在一定程度下看做随机数,借助(int)来进行类型转换就可以得到整数随机数了,代码如下。

public static void main(String[] args){ int max=100,min=1;int ran2 = (int) (Math.random()*(max-min)+min); System.out.println(ran2);}

至于第三种方法虽然不常用,但是也是一种思路。方法返回从1970年1月1日0时0分0秒(这与UNIX系统有关)到现在的一个long型的毫秒数,取模之后即可得到所需范围内的随机数。

public static void main(String[] args){int max=100,min=1;long randomNum = System.currentTimeMillis();int ran3 = (int) (randomNum%(max-min)+min);System.out.println(ran3);}

点击免费获取

有需要的私信免费发

java random产生随机数_java的三种随机数生成方式,必掌握相关推荐

  1. java int随机数_java的三种随机数生成方式

    随机数的产生在一些代码中很常用,也是我们必须要掌握的.而java中产生随机数的方法主要有三种: 第一种:new Random() 第二种:Math.random() 第三种:currentTimeMi ...

  2. java源代码实例倒计时_Java倒计时三种实现方式代码实例

    写完js倒计时,突然想用java实现倒计时,写了三种实现方式 一:设置时长的倒计时: 二:设置时间戳的倒计时: 三:使用java.util.Timer类实现的时间戳倒计时 代码如下: package ...

  3. java 遍历list 性能_java list三种遍历方法性能比較

    从c/c++语言转向java开发,学习java语言list遍历的三种方法,顺便測试各种遍历方法的性能,測试方法为在ArrayList中插入1千万条记录,然后遍历ArrayList,发现了一个奇怪的现象 ...

  4. java反射效率对比_Java反射三种方式的效率对比

    1 使用field long start = System.nanoTime(); Field[] fields = CallCount.class.getDeclaredFields(); for ...

  5. JAVA解决生产消费者_Java常用三种方式解决生产者消费者问题(详细)

    package test; /** * Synchronized 版本解决生产者消费者 * wait() / notify()方法 */ import java.util.LinkedList; im ...

  6. java倒计时_Java倒计时三种实现方式代码实例

    写完js倒计时,突然想用java实现倒计时,写了三种实现方式 一:设置时长的倒计时: 二:设置时间戳的倒计时: 三:使用java.util.Timer类实现的时间戳倒计时 代码如下: package ...

  7. Java生成唯一标识码的三种方式

    Java生成唯一标识码的三种方式 前言 我们经常会遇到这样的场景,需要生成一个唯一的序列号来表明某一个数据的唯一性,在单节点的应用中我们可以简单地使用一个自增的整型来实现实现,但是在分布式情况下这个方 ...

  8. 读取Java文件到byte数组的三种方式及Java文件操作大全(包括文件加密,String加密)

    读取Java文件到byte数组的三种方式 package zs;import java.io.BufferedInputStream; import java.io.ByteArrayOutputSt ...

  9. ios中三种随机数方法

    ios 有如下三种随机数方法: //第一种 srand((unsigned)time(0)); //不加这句每次产生的随机数不变 int i = rand() % 5; //第二种 srandom(t ...

最新文章

  1. python函数type的用意_Python中type的构造函数参数含义说明
  2. zblog php 当前位置,zblogphp导航当前页突出显示的方法
  3. python list add_用Python创建List对象类
  4. 容量法和库仑法的异同点_快速搞懂「活性污泥法」,主要把握这4点!
  5. Mockito –带有注释和静态方法的额外接口
  6. 湖南单招计算机专业大学排名,2021湖南单招学校排名及分数线:湖南单招分数线高吗?...
  7. 02-虚拟机克隆配置
  8. python paas_Python paasword包_程序模块 - PyPI - Python中文网
  9. python编程从入门到实践书中出错的地方_读书笔记「Python编程:从入门到实践」_10.文件和异常...
  10. 输入一个日期,计算这个日期与 2018-03-12差多少天;
  11. 小D课堂 - 零基础入门SpringBoot2.X到实战_第2节 SpringBoot接口Http协议开发实战_13、jar包方式运行web项目文件上传和访问...
  12. 生命游戏(康威的生命游戏) Game Of Life - Conway Cocos Creator 3.x版实现
  13. socket 服务器端和客户端通信,面向TCP的
  14. Win10版本怎么转换?小编教你一键切换Windows版本
  15. 本地Remix与私链节点相连
  16. 浏览器主页被hao123劫持之解决方案
  17. ngx_http_core_module模块提供的变量
  18. 信号完整性分析中,普遍选用50Ω特性阻抗的原因
  19. acwing.回文质数
  20. java 无法打印_自动打印在Java中不起作用

热门文章

  1. linux rpm和deb的区别,rpm与deb的区别
  2. citrix android,Citrix Receiver
  3. sap 打印预览界面点击打印时记录打印次数_SAP打印机设置
  4. 南京工程学院计算机组成原理第二版答案,南大__计算机组成原理第二次作业
  5. [蓝桥杯][算法提高VIP]金陵十三钗(状压dp记忆化搜索)
  6. KDD2021 放榜,6 篇论文带你了解阿里妈妈AI技术
  7. html怎么给边框改样式,html里面怎么设置边框?html边框样式设置方法
  8. 猜数大小编程c语言_猜数正确编程
  9. java配置文件放置到jar外_java相关:Spring Boot 把配置文件和日志文件放到jar外部...
  10. mysql 跨库复制_Mysql跨数据库(在同一IP地址中)复制表