java的三种随机数生成方式

a5651651616      2022-05-12     347

关键词:

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

第一种:new Random()

第二种:Math.random()

第三种:currentTimeMillis()

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

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

技术图片

 

复制代码

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

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

技术图片

 

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

技术图片

随机点的三种方式(代码片段)

1importjava.util.Random;2importjava.lang.Math;34/**5*java的随机数测试程序。共3种获取随机数的方法:6*(01)、通过System.currentTimeMillis()来获取一个当前时间毫秒数的long型数字。7*(02)、通过Math.random()返回一个0到1之间的double值。8*(03)、通过Rando... 查看详情

mysql生成随机字符串的三种方法

参考技术A比如说,要生成一个10位的随机字符串,可以使用如下语句:运行结果:该语句只能生成最长32位(但只有0~9,a~f共16种字符)的字符串,如果需要更长的字符,可以使用concat函数连接多个字符串,如下所示:这个语句... 查看详情

spring生成entitymanagerfactory的三种方式

spring生成EntityManagerFactory的三种方式1.LocalEntityManagerFactoryBean只是简单环境中使用。它使用JPAPersistenceProvider自动检测机制(accordingtoJPA‘sJavaSEbootstrapping),并且大多数情况下,你只能定义一下persistenceunitname例如:<beans><be 查看详情

java多线程实现的三种方式

 JAVA多线程实现的三种方式Java中继承thread类与实现Runnable接口的区别 查看详情

生成二维码的三种方式

一:二维码的概念 二维条码(2-dimemsionalbarcode)是用某种特定的几何图形按一定规律在平面(二维方向上)分布的黑白相间的图形记录数据符号信息的图形 二:二维码的分类 通常分为三种类型: 1.0线性堆叠式二维码 编码原理:建立在一... 查看详情

java多线程的三种实现方式

今天简单说一下Java三种多线程实现方式和区别,主要有实现Runnable、Callable和继承Thread三种方式。实现Runnable的方式这种方式比较常用,当我们的线程类有继承其他的类的情况下(Java不支持类多继承),并且线程任务不需要返回... 查看详情

java生成随机数几种方式(代码片段)

随机数的产生在一些代码中很常用,也是我们必须要掌握的。而java中产生随机数的方法主要有三种:第一种:newRandom()第二种:Math.random()第三种:currentTimeMillis()第一种第一种需要借助java.util.Random类来产生一... 查看详情

java中创建线程的三种方式

JAVA中创建线程的三种方式1继承Thread类重写run方法,使用start()开启线程,如此,就可以同时做多件事情publicclassMyThreadextendsThread{@Overridepublicvoidrun(){for(inti=0;i<10;i++){try{sleep(1000);}catch(InterruptedExceptione){e.printStackT 查看详情

python项目生成requirements的三种方式

参考技术A第一种方式适用于通过conda来管理/安装项目依赖包,生成的文件内容如下:第二种方式适用于通过pip来管理/安装项目依赖包,生成的文件内容如下:所以看到通过这种方式生成的requirements文件中,通过conda安装的包并... 查看详情

java创建线程的三种方式

1.继承Runnable接口packagetest;classRunnableDemoimplementsRunnable{privateThreadt;privateStringthreadName;RunnableDemo(Stringname){threadName=name;System.out.println("Creating"+name);}publicvoidrun(){Syste 查看详情

java-多线程-创建线程的三种方式

JAVA-多线程-创建线程的三种方式并发:同一时间只有一条指令在执行,多个进程的指令被快速轮换执行。并行:同一时间有多条指令在多个处理器上运行。进程:每个运行中的程序就是一个进程。线程:线程(Thread)也被称为轻... 查看详情

springmvc返回json数据的三种方式

SpringMVC返回json数据的三种方式:http://blog.csdn.net/shan9liang/article/details/42181345 上述第三种方法:可能会出现这个jar包没有的情况,引入即可,下面pom引入即可java.lang.NoClassDefFoundError:com/fasterxml/jackson/core/JsonProcessingExce 查看详情

java多线程开启的三种方式

1、继承Thread类,新建一个当前类对象,并且运行其start()方法1packagecom.xiaostudy.thread;23/**4*@desc第一种开启线程的方式5*@authorxiaostudy6*7*/8publicclassDemo1_ThreadextendsThread{910publicvoidrun(){11for(inti=0;i<10;i++){12Syste 查看详情

java创建线程的三种方式

http://blog.csdn.net/longshengguoji/article/details/41126119线程的四种创建方式:(1)继承Thread类(2)实现Runnable接口(3)应用程序可通过使用Executor框架来创建线程池(4)实现callable接口线程的几种可用状态(1)新建(2)可运行(3)运... 查看详情

java创建线程的三种主要方式

Java创建线程的主要方式一、继承Thread类创建  通过继承Thread并且重写其run(),run方法中即线程执行任务。创建后的子类通过调用start()方法即可执行线程方法。  通过继承Thread实现的线程类,多个线程间无法共享线程类的实... 查看详情

java反射获取class对象的三种方式,反射创建对象的两种方式(代码片段)

Java反射获取class对象的三种方式,反射创建对象的两种方式1、获取Class对象在JavaAPI中,提供了获取Class类对象的三种方法:第一种,使用Class.forName静态方法。前提:已明确类的全路径名。第二种,使用.class方法。说明:仅适合... 查看详情

java中arraylist集合的三种遍历方式

publicclassListDemo{publicstaticvoidmain(String[]args){ArrayList<String>mList=newArrayList<>();mList.add("郭靖");mList.add("黄蓉");mList.add("洪七公");mList.add("周伯通");//第一种遍历方式:普通for循环for(inti=0 查看详情

java连接linux的三种方式(附执行命令)

#本地调用使用JDK自带的RunTime类和Process类实现publicstaticvoidmain(String[]args){Processproc=RunTime.getRunTime().exec("cd/home/winnie;ls;")//标准输入流(必须写在waitFor之前)StringinStr=consumeInputStream(proc.getInputStream() 查看详情