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. 线性代数投影法在线性回归中的应用
  2. 修改数据库服务器日期命令,服务器上数据库用命令修改
  3. 记录:C#编程中的字符串
  4. 【Linux】4_基本权限ACL的命令(setacl和getacl)
  5. 从 volatile 说到 i++ 的线程安全问题
  6. 一、专栏作者润森闲谈数据分析
  7. 二叉树两个节点的公共节点
  8. mysql php7安装配置_centos7无网络下安装部署php7.1.33+mysql5.7.28+apache2.4.6-Go语言中文社区...
  9. redhat bash: yum: 未找到命令..._常用linux yum 命令和 vim命令,这几个要熟记
  10. Coinbase在苹果应用商店前100免费应用中排名第30位
  11. Leetcode每日一题:56. I. 数组中数字出现的次数
  12. 51单片机配合超声波测距以及用1602液晶进行显示
  13. matlab中{} ()和[] 的区别 -
  14. linux上apache的安装
  15. asp.net oracle odbc,ADO.NET 连接数据库字符串小结(Oracle、SqlServer、Access、ODBC)
  16. Thinkphp3.2+ 微信小程序图片上传
  17. 无人驾驶项目——交通标志识别
  18. .net reactor使用教程(4)——.net reactor针对De4Dot脱壳工具的应对
  19. java 翻译 go语言_【翻译】go是面向对象语言吗?
  20. ISC 2022“护航数字山河·数据安全协同创新”高峰会:共议数据安全新方案

热门文章

  1. 520CSS制作爱心学习记录
  2. 内切相减原理绘制CAD图形
  3. 全固态钙钛矿敏化ZnO-TiO2/TiO2/SrTiO3染料敏化太阳能电池DSSCs/碱金属钛酸盐Li4Ti5O(12)尖晶石结构/SrTiO3薄膜电极材料
  4. 使用Matlab对数据归一化
  5. 大数据Hadoop学习之————基于物品的协同过滤算法实现物品推荐
  6. 计算机一级photoshop知识,2017年9月计算机一级Photoshop知识巩固题
  7. 无锡校长另类“励志”演讲:长得不帅还不学习
  8. DT tableone各种花里胡哨的图 把dataframe导出成html 把矩阵变成html方便查看 类似于shinny功能 制作三线表等共功能 fextable 花里胡哨的工具 datatable
  9. 国外本科liuxue生未毕业学历认证,看这里
  10. python 爬虫Scrapy框架入门