java产生随机数的几种方式

一.在j2se里我们可以使用Math.random()方法来产生一个随机数,这个产生的随机数是0-1之间的一个double,我们可以把他乘以一定的数,比如说乘以100,他就是个100以内的随机,这个在j2me中没有。

二.在java.util这个包里面提供了一个Random的类,我们可以新建一个Random的对象来产生随机数,他可以产生随机整数、随机float、随机double,随机long,这个也是我们在j2me的程序里经常用的一个取随机数的方法。

三.在我们的System类中有一个currentTimeMillis()方法,这个方法返回一个从1970年1月1号0点0分0秒到目前的一个毫秒数,返回类型是long,我们可以拿他作为一个随机数,我们可以拿他对一些数取模,就可以把他限制在一个范围之内啦

其实在Random的默认构造方法里也是使用上面第三种方法进行随机数的产生的

对于方法二中的Random类有以下说明:

java.util.Random类有两种方式构建方式:带种子和不带种子

不带种子: 此种方式将会返回随机的数字,每次运行结果不一样

Random r = new Random();//创建一个新的随机数生成器。

for (int i = 0; i < 5; i++) {

System.out.println(r.nextInt(100));

//System.out.println(r.nextInt(100));//返回一个伪随机数,它是取自此随机数生成器序列的、在 0(包括)和指定值(不包括)之间均匀分布的 int 值。

}

带种子:  此种方式,无论程序运行多少次,返回结果都是一样的

如果用相同的种子创建两个Random实例,则对每个实例进行相同的方法调用序列,它们将生成并返回相同的数字序列。

Random r = new Random(10); //使用单个 long 种子创建一个新的随机数生成器。

for (int i = 0; i < 5; i++) {

System.out.println(r.nextInt(100));

在构造函数里用,会根据你给的种子声称随机数序列不同的种子,随机数序列不同比如这个:用1作种子:Random ran = new Random( 1 );用当前的系统时间作为种子Random ran = new Random((new Date()).getTime());或Random ran = new Random(System.currentTimeMillis());推荐第二种

java产生随机数的方法_JAVA: java产生随机数的几种方式相关推荐

  1. java获取项目路径方法_java项目获取路径的几种方式

    第一种: File f = new File(this.getClass().getResource("/").getPath()); System.out.println(f); ...

  2. java数组怎么全部初始化_Java数组初始化,这三种方式有什么区别?

    首先因为数组初始化要使用的时候必须确定数组的长度,也就是说数组的长度是不可变的. 在JAVA中创建数组有两种方式 : (1)静态创建 如 Object[] arr1 = {"a", ...

  3. java遍历一个map集合_Java遍历Map集合的四种方式

    Map 集合的遍历与 List 和 Set 集合不同.Map 有两组值,因此遍历时可以只遍历值的集合,也可以只遍历键的集合,也可以同时遍历.Map 以及实现 Map 的接口类(如 HashMap.Tr ...

  4. java json的使用方法_JAVA编写JSON常用的三种方法

    JAVA编写JSON常用的三种方法 Szx • 2019 年 11 月 15 日 1.jsonlib需要引入的包也多,代码也相对多一些. 2.Gson:谷歌的 3.FastJson:阿里巴巴的,这几个 ...

  5. java new class 直接调用_java中创建对象的的两种方式具体解释,一个是new一个是调用Class类的newinstance方法?...

    展开全部 1.new 使用java的关键字new来创建对象实例.构造函数链中的所有构造函数都32313133353236313431303231363533e78988e69d833133333739 ...

  6. java连接本地oracle数据库_JAVA连接oracle数据库的三种方式

    1 传统方式连接数据库(效率较低) 此方法连接数据库,其性能.可靠性与稳定性随着用户访问量的增加逐渐下降,跟踪测试表明,其根本问题与Connection对象的创建有关.不过在这里还是讲一下此方法的实现 ...

  7. java 运行os文件路径_Java获取文件路径的几种方式

    关于绝对路径和相对路径: 绝对路径就是你的主页上的文件或目录在硬盘上真正的路径,(URL和物理路径)例如:C:xyz est.txt 代表了test.txt文件的绝对路径. http://www.su ...

  8. Java的基础方法Java的对象_java基础之 创建对象的几种方式

    有4种显式地创建对象的方式: 1.用new语句创建对象,这是最常用的创建对象的方式. 2.运用反射手段,调用java.lang.Class或者java.lang.reflect.Constructor ...

  9. java日历类add方法_Java日历setFirstDayOfWeek()方法与示例

    java日历类add方法 日历类setFirstDayOfWeek()方法 (Calendar Class setFirstDayOfWeek() method) setFirstDayOfWeek( ...

  10. java日历类add方法_Java日历setMinimalDaysInFirstWeek()方法与示例

    java日历类add方法 日历类setMinimalDaysInFirstWeek()方法 (Calendar Class setMinimalDaysInFirstWeek() method) se ...

最新文章

  1. 【IOC 控制反转】Android 事件依赖注入 ( 事件依赖注入具体的操作细节 | 创建 事件监听器 对应的 动态代理 | 动态代理的数据准备 | 创建调用处理程序 | 创建动态代理实例对象 )
  2. oracle cluster(簇)的简单使用
  3. .NETCore 简单且高级的库 csredis v3.0.0
  4. matlab输出n个a,输入a,n两个参数,要求输出aaa...a(共n个)的值
  5. 小白学爬虫:Scrapy入门(四)
  6. 【C++编程技巧】函数多个返回值
  7. ftp 上传下载整个目录
  8. 蓝桥杯 C语言 试题 历届试题 网络寻路
  9. 怎么卸载mysql2008_SQL Server 2008怎么卸载?SQL Server 2008完全卸载教程
  10. CAD图纸查看器 CADViewer V9.0
  11. OpenDRIVE编辑器TruevisionDesigner
  12. Ubuntu 10.04 使用libfetion
  13. AutoCAD快速入门(二十九):视口
  14. C语言杨辉三角前15行,C语言输出杨辉三角前n行(低时间复杂度)
  15. Scene Graph Generation by Iterative Message Passing
  16. 主机可以ping通虚拟机,虚拟机ping不通主机
  17. 军用计算机ip等级是什么,加固计算机的IP防护等级是什么?
  18. html5复选框控制按钮状态,HTML input checkbox复选按钮简介说明
  19. 【RA6M4学习RT-Thread相关bug答疑】
  20. (二)K8s踩坑记录

热门文章

  1. Python图像处理基础
  2. C# Spire.PDF 去处红色警告文字
  3. 网络电视机顶盒、IPTV后台内容管理系统?
  4. 一文带你读懂数字管家
  5. 苹果5g手机_iPhone 12 mini全面解析,最便宜最小的5G苹果手机
  6. SpringCloudAlibaba 微服务整合分布式事务Seata
  7. redis面试必备的十大面试题
  8. C/C++ 代码检测工具
  9. 手把手教学之如何设计财务对账系统
  10. 熊猫卡丁车图片android版,熊猫卡丁车-宝宝巴士