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 都做了比较详细的说明,并且将随机数的特性以及实现思路也做了一些简单的分析,帮助大家明白为何会有这么多的随机数算 ...
随机推荐
- vue.js基础知识篇(2):指令详解
第三章:指令 1.语法 指令以v-打头,它的值限定为绑定表达式,它负责的是按照表达式的值应用某些行为到DOM上. 内部指令有v-show,v-else,v-model,v-repeat,v-for,v ...
- try...catch...finally语句块
try-catch-finally语句主要是用来处理检查异常,捕获并处理,以及最后必须要执行的finally块. try-catch-finally语句入门: 1.try-catch-finally语 ...
- jQuery遍历-后代
后代是子.孙.曾孙等等. 通过 jQuery,您能够向下遍历 DOM 树,以查找元素的后代. 向下遍历 DOM 树 下面是两个用于向下遍历 DOM 树的 jQuery 方法: children() f ...
- iOS,点击button拨打电话
//按钮点击拨打电话 -(void)kfclick:(UIButton *)btn { [[UIApplication sharedApplication] openURL:[NSURL URLWit ...
- Cognos 11.0快速开发指南 Ⅰ
1. 概述 Cognos Analysics 11,是IBM在Cognos BI 10的版本基础上,吸取业界流行的敏捷BI理念,强化了自助式分析的一款强大BI开发平台工具.其官方文档内容丰富,但是较为 ...
- jmeter 实现登录一次,多次操作登录后的某一个功能
- SpringMVC知识点小结
SpringMVC: 1.SpringMVC和Spring的关系: 软件开发的三层架构: web层[表示层.表现层]---->Service层---->Dao[DataBase Acces ...
- CSS display使用
.今天我们来分析一下display的一些用法,display样式在我们整个CSS设置中,非常重要,掌握好display,才能有效的解决CSS布局的问题,在理解display之前,我们先了解两个概念:块 ...
- 【javascript】谈谈HTML5 ——HTML兽进化, H5兽!
作为一名Web开发者,可能你并没有对这个“H5”这个字眼投入太多的关注,但实际上它早已不知不觉进入到你的开发中,并且总有一天会让你不得不正视它,了解它并运用它 打个比方:<海贼王>中的 ...
- JavaScript在应用中的技巧(一)
分享一些在JavaScript中遇到的一些实用的技巧. 理解JavaScript的数值型数据类型 JavaScript的数值型数据类型只有一种:number.即不管是整数还是浮点数,JavaScrip ...