Java随机数的使用
在java中实现随机数的类有两种,分别是和java.util.Math 和 java.util.Random
第一种:java.lang.Math.random()
Math.random()方法创建的是[0.0,1.0)范围类的浮点数
示例代码:
int i = 0;
System.out.println("Math.random生成随机数!");
while (i < 3) {
System.out.println("第" + i + "个数:" + Math.random());
i++;
}
控制台输出:
第二种:java.util.Random类
java.util.Random类有两种构造器,分别为Random()和Random(long seed)
两种构造器最主要的区别就在于seed的不同,seed是实现Random类所需的变量,也就是Random类创建所需的种子,Random根据它来生成不同的随机数序列.
Random()用的是默认的seed值,而Random(long seed)实现则是根据输入的seed值来生成对应的随机数序列,
也就是说相同seed的Random对象创建的随机数序列相同.
示例代码:
java.util.Random random1 = new java.util.Random(10);
java.util.Random random1_sanmeseed = new java.util.Random(10);
java.util.Random random2 = new java.util.Random();
System.out.println("random1:"+random1.nextInt());
System.out.println("random1_sanmeseed:"+random1_sanmeseed.nextInt());
System.out.println("random2:"+random2.nextInt());
控制台输出:
注:使用nextInt测试时要注意使用无参或者参数相同的方法 否则就是random的seed值相同 也会输出不同的随机数.
由此可见在java.util.Random类的适用范围更广泛一些,随后大致讲下它的几个方法,分别是:
nextInt();nextInt(int bound);nextDouble();
nextInt() nextInt(int bound)的不同在于bound 限制了随机数出现的范围,使用后者方法生成的随机数是在[0,bound)之间 不带参数则生成[-2147483648,2147483647]范围内的随机数,也是int的取值范围.
java.util.Random random = new java.util.Random();
for(int i=0;i<10;i++){
System.out.println("带bound参数方法生成的随机数:"+random.nextInt(10));
System.out.println("无参数方法生成的随机数: "+random.nextInt());
}
控制台输出:
nextDouble()方法 返回的随机数和Math.random()返回的随机数范围相同,均为[0,1)之内的随机数,
那么实现[-3,12)范围内的随机小数怎么办呢?(此问题同样适用于nextInt(),nextFloat()等方法)
java.util.Random random = new java.util.Random();
for(int i=0;i<10;i++){
double num = random.nextDouble()*15-3;
System.out.println("[-3,12)之间的Double随机数:"+num);
}
控制台输出:
Java随机数的使用的更多相关文章
- Java 随机数
本章先讲解Java随机数的几种产生方式,然后通过示例对其进行演示. 广义上讲,Java中的随机数的有三种产生方式:(01). 通过System.currentTimeMillis()来获取一个当前时间 ...
- 学习记录 java随机数的产生机制
java 随机数 一.在j2se里我们可以使用Math.random()方法来产生一个随机数,这个产生的随机数是0-1之间的一个double,我们可以把他乘以一定的数,比如说乘以100,他就是个100 ...
- Java随机数
本章先讲解Java随机数的几种产生方式,然后通过示例对其进行演示. 广义上讲,Java中的随机数的有三种产生方式:(01). 通过System.currentTimeMillis()来获取一个当前时间 ...
- java随机数与数组的使用。
java随机数与数组的使用. 一:题目 二 代码: public class Students { int number; // 学号 int State ; // 年级 ...
- Java随机数和UUID
Java随机数和UUID Java随机数 在Java项目中通常是通过Math.random方法和Random类来获得随机数,前者通过生成一个Random类的实例来实现. 此类产生的是一组伪随机数流,通 ...
- java 随机数高效生成
分享牛,分享牛原创.近期去面试经常被问到java如何生产随机数,以及生成很大的字符串保证不能重复,还要考虑性能,之前本人面试别人的时候,可能不会问这个问题.既然这个java随机数问题经常被问到,那咱们 ...
- (转)Java随机数
1 随机数的三种产生方式 本章先讲解Java随机数的几种产生方式,然后通过示例对其进行演示. 广义上讲,Java中的随机数的有三种产生方式: (01). 通过System.currentTimeMil ...
- java 随机数 <%=System.currentTimeMillis() %>
java 随机数<c:set var="version" value="<%=System.currentTimeMillis() %>"/& ...
- 硬核 - Java 随机数相关 API 的演进与思考(上)
本系列将 Java 17 之前的随机数 API 以及 Java 17 之后的统一 API 都做了比较详细的说明,并且将随机数的特性以及实现思路也做了一些简单的分析,帮助大家明白为何会有这么多的随机数算 ...
- 硬核 - Java 随机数相关 API 的演进与思考(下)
本系列将 Java 17 之前的随机数 API 以及 Java 17 之后的统一 API 都做了比较详细的说明,并且将随机数的特性以及实现思路也做了一些简单的分析,帮助大家明白为何会有这么多的随机数算 ...
随机推荐
- Intelli IDEA学习系列之快捷键篇
Intelli IDEA学习系列之快捷键篇 IDEA简介: IDEA 全称IntelliJ IDEA,是java语言开发的集成环境,IntelliJ在业界被公认为最好的java开发工具之一,尤其在智能 ...
- [Spring面试] 问题整理
1.谈谈你对spring IOC和DI的理解,它们有什么区别? IoC:Inverse of Control 反转控制的概念,就是将原本在程序中手动创建UserService对象的控制权,交由Spri ...
- JavaScript入门(四)
一.数组 1.数组的基本概念 数组是在内存空间中连续存储的一组有序数据的集合.元素在数组中的顺序,称为下标.可以使用下标访问数组的每个元素. 2.如何声明一个数组 ①使用字面量声明:var arr = ...
- Android studio一些常见技巧(不断更新)
一.Android studio取消默认每次打开时打开最后一个项目 二.as添加jar包 新建一个libs目录,在java下 进行手动gragle同步或者如下图 三.代码边上的小图标 1.布局文件中存 ...
- 深入理解JAVA I/O系列六:Linux中的IO模型(转载的文章非常值得学习)
From:http://www.cnblogs.com/dongguacai/p/5770287.html IO模型 linux系统IO分为内核准备数据和将数据从内核拷贝到用户空间两个阶段. 这张图大 ...
- sqlserver优化
有些程序员在撰写数据库应用程序时,常专注于 OOP 及各种 framework 的使用,却忽略了基本的 SQL 语句及其「性能 (performance)优化」问题.版工曾听过台湾某半导体大厂的新进程 ...
- maven 添加memcached.jar配置方法
针对Java项目添加 memcahced 在mvnrepository 找了半天也没找到memcached.jar的配置xml, 由于目前Javamemcached client没有官方的maven ...
- java 多线程Callable和Runable执行顺序问题详解
详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcyt125 毫无疑问 Runnable会进行异步执行,此处不多说,主要说明Call ...
- 一,ESP8266下载和刷固件
用自己的小板测试...... 安排上呢 一, ESP8266下载和刷固件(Lua开发----体验一下lua开发的魅力所在) 二, 控制一个灯亮灭 三, TCP服务器 四, TCP客户端 五, UDP ...
- none,hidden和opacity="0"设置元素不可见的区别
none,hidden和opacity="0"均可设置元素为不可见的状态.其中none属于display的属性值,hidden属于visibility的属性值.使用none时元素不 ...