随机是某些项目中特有的色彩,如抽奖什么的,本文我们就来了解下java中的随机数代码生成方式。

三种生成方式示例,如下:import java.util.Random;

import java.lang.Math;

/**

* java 的随机数测试程序。共3种获取随机数的方法:

*   (01)、通过System.currentTimeMillis()来获取一个当前时间毫秒数的long型数字。

*   (02)、通过Math.random()返回一个0到1之间的double值。

*   (03)、通过Random类来产生一个随机数,这个是专业的Random工具类,功能强大。

*

* @author skywang

* @email kuiwu-wang@163.com

*/

public class RandomTest

{

public static void main(String args[])

{

// 通过System的currentTimeMillis()返回随机数

testSystemTimeMillis();

// 通过Math的random()返回随机数

testMathRandom();

// 新建“种子为1000”的Random对象,并通过该种子去测试Random的API

testRandomAPIs(new Random(1000), " 1st Random(1000)");

testRandomAPIs(new Random(1000), " 2nd Random(1000)");

// 新建“默认种子”的Random对象,并通过该种子去测试Random的API

testRandomAPIs(new Random(), " 1st Random()");

testRandomAPIs(new Random(), " 2nd Random()");

}

/**

* 返回随机数-01:测试System的currentTimeMillis()

*/

private static void testSystemTimeMillis()

{

// 通过

final long l = System.currentTimeMillis();

// 通过l获取一个[0, 100)之间的整数

final int i = (int)(l % 100);

System.out.printf("\n---- System.currentTimeMillis() ----\n l=%s i=%s\n", l, i);

}

/**

* 返回随机数-02:测试Math的random()

*/

private static void testMathRandom()

{

// 通过Math的random()函数返回一个double类型随机数,范围[0.0, 1.0)

final double d = Math.random();

// 通过d获取一个[0, 100)之间的整数

final int i = (int)(d * 100);

System.out.printf("\n---- Math.random() ----\n d=%s i=%s\n", d, i);

}

/**

* 返回随机数-03:测试Random的API

*/

private static void testRandomAPIs(Random random, String title)

{

final int BUFFER_LEN = 5;

// 获取随机的boolean值

boolean b = random.nextBoolean();

// 获取随机的数组buf[]

byte[] buf = new byte[BUFFER_LEN];

random.nextBytes(buf);

// 获取随机的Double值,范围[0.0, 1.0)

double d = random.nextDouble();

// 获取随机的float值,范围[0.0, 1.0)

float f = random.nextFloat();

// 获取随机的int值

int i1 = random.nextInt();

// 获取随机的[0,100)之间的int值

int i2 = random.nextInt(100);

// 获取随机的高斯分布的double值

double g = random.nextGaussian();

// 获取随机的long值

long l = random.nextLong();

System.out.printf("\n---- %s ----\nb=%s, d=%s, f=%s, i1=%s, i2=%s, g=%s, l=%s, buf=["

, title, b, d, f, i1, i2, g, l);

for (byte bt: buf)

System.out.printf("%s, ", bt);

System.out.println("]");

}

}

以上就是本篇文章的所有内容,更多随机数常见问题请关注我们了解具体。

推荐阅读:

java生成随机数的代码_java随机数代码的三种生成方式怎么编写?相关推荐

  1. java定时执行某个方法_Java中定时执行任务的三种方法

    Java中定时执行任务的三种方法 1)java.util.Timer 这个方法应该是最常用的,不过这个方法需要手工启动你的任务: Timer timer=new Timer(); timer.sche ...

  2. java时间戳是什么类型_java 获取时间戳的三种方式

    java 获取时间戳的三种方式 CreationTime--2018年7月13日16点29分 Author:Marydon 1.实现方式 方式一:推荐使用 System.currentTimeMill ...

  3. java的字符串截取函数_java 字符串截取的三种方法(推荐)|chu

    众所周知,java提供了很多字符串截取的方式.下面就来看看大致有几种. 1.split()+正则表达式来进行截取. 将正则传入split().返回的是一个字符串数组类型.不过通过这种方式截取会有很大的 ...

  4. java的队列实现方法_Java实现队列的三种方法集合

    数组实现队列 //数组实现队列 class queue{ int[] a = new int[5]; int i = 0; //入队操作 public void in(int m) { a[i++] ...

  5. java多线程的实现方式_JAVA多线程实现的三种方式

    最近在做代码优化时学习和研究了下JAVA多线程的使用,看了菜鸟们的见解后做了下总结. 1.JAVA多线程实现方式 JAVA多线程实现方式主要有三种:继承Thread类.实现Runnable接口.使用E ...

  6. java 创建5个线程_Java创建线程的三种方式

    1.继承Thread 类,创建线程类 ,调用start方法启动  (单一继承 ) public class Test1 extendsThread { @Overridepublic voidrun( ...

  7. Java书签 #用Java生成指定位数不重复随机数

    楔子:或许我一次恋爱都不曾体验就老了.我可能无法和任何人恋爱.我可能一辈子都不会知道恋爱是什么.虽然我的大脑知道念念不忘某个人并为他哭泣.痛苦的感觉,比什么都不知道的要好,可是我的大脑并没有教我如何才 ...

  8. java 生成印章源码_java代码生成指定的公章和私章,并且解决服务器不能回显文字的问题...

    因项目需求所需,需要用java根据字段生成公章,在这里特别感谢大佬们贡献的代码,由衷的表示感谢,我充分发挥了搬砖的作用,因为在中间遇到了服务器上没有字的问题,故写下次文章,作为记录,希望能帮助到童鞋们 ...

  9. java解析遍历List集合(其实现子类)的三种方式

    java解析遍历List集合(其实现子类)的三种方式 1 使用迭代器对象 1.1 底层 1.1.1 List接口继承了Collection接口 1.1.2 而Collection接口又继承了Itera ...

  10. java生成永远不重复的随机数_java生成不重复随机数的方法

    java生成不重复随机数的方法 发布时间:2020-07-01 11:00:00 来源:亿速云 阅读:225 作者:Leah java怎么实现生成不重复随机数 ?针对这个问题,这篇文章详细介绍了相对应 ...

最新文章

  1. JMC | 人工智能在药物合成中的当前和未来作用(1)
  2. 虚拟现实大会ChinaVR2015报告之-数据可视化的挑战与机遇
  3. AVL树平衡旋转详解
  4. tornado数据库迁移
  5. 【caffe-Windows】关于LSTM的使用-coco数据集
  6. ubuntu,kali linux和windows三系统流水账——写给自己
  7. 立创EDA学习3-绘制pcb(初级)
  8. 2年200店!Tims咖啡强势扩张的底气在哪里?
  9. Flutter 新一代图形渲染器 Impeller
  10. 2.* 版本taro引入 taro-ui编译小程序阶段报错, Module not found: Can‘t resolve ‘./style/index.scss‘
  11. 聊聊新加坡的工作和生活
  12. Python——定义全局变量
  13. 关于fuse的常用启动参数
  14. 最优化:一维搜索的Wolfe条件与Goldstein条件
  15. python可以自动拆分表格吗_Python最详细的Excel操作方式,你值得拥有!
  16. bulid.prop优化代码(好像很强?)
  17. Intel 3945ABG用OmniPeek 4.1抓包破解WEP
  18. 线性代数中两个向量相乘_加两个向量| Python的线性代数
  19. 进阶的阿牛哥之用python向多人发送邮件(带附件)、遍历邮件获取内容(两种方法:imbox、imaplib)
  20. 含spike-in的单细胞分析

热门文章

  1. Php与Mysql关系揭秘
  2. 百度要革自己的命?移动搜索或取消PC网页收录
  3. Sicily 1049. Mondriaan 解题报告
  4. 准备系统地学习一下Python
  5. 机器人 知乎碧桂园_杨国强森林城市与机器人跃进后的“梦醒时分”
  6. odoo13 订单模板设置_ERP输出嵌入公章的采购订单电子档,其实真的不难
  7. js休眠5秒_JS 之秒开方案大全
  8. 如何在js中实现html语言,如何使用脚本标签将JavaScript插入HTML
  9. windows系统服务优化终结者_邮件服务器如何从Windows系统切换到Linux系统
  10. php把字符串改成utf8,PHP将字符串改成UTF8的方法