一、Random类的认识

Random是随机的意思 。

Random类是java.until下的一个根据随机算法的起源数字进行一些变化,从而得到随机数字的方法。

随机算法的起源数字被成为种子数(seed)。

虽然Random类产生的数字是随机的,但在相同种子数(seed)下的相同次数产生的随机数是相同的(伪随机)。

二、Random对象的生成

Random中共有两种构造方法

1、public Random()

此构造方法是以系统自身的时间为种子数来构造Random对象。

2、public Random(long seed)

此构造方法可以自己来选定具体的种子来构造Random对象。

三、Random类的简单使用

package cn.itcast.demo1;import java.util.Random;//使用时需要先导包
import java.util.Scanner;public class RAndom {public static void main(String[] args) {Random r = new Random();//以系统自身时间为种子数int i = r.nextInt();System.out.println("i"+i);Scanner sc  =new Scanner(System.in);int j = sc.nextInt();Random r2 = new Random(j);//自定义种子数Random r3 = new Random(j);//这里是为了验证上方的注意事项:Random类是伪随机,相同种子数相同次数产生的随机数相同int num  = r2.nextInt();int num2 = r3.nextInt();System.out.println("num"+num);System.out.println("num2"+num2);}
}

输出

i194711934

2
num-1154715079
num2-1154715079

四、常用方法

random.nextInt() 返回值为整数,范围是int类型范围
random.nextLong() 返回值为长整型,范围是long类型的范围
random.nextFloat() 返回值为小数,范围是[0,0.1]
random.nextDouble() 返回值为小数,范围是[0,0.1]
random.nextBoolean() 返回值为boolean值,true和false概率相同
radom.nextGaussian() 返回值为呈高斯(“正态”)分布的 double 值,其平均值是 0.0,标准差是 1.0

五、简单应用

需求:设计一个密码生成器,可以随机生成4位数字字母(包括大小写)混合的动态密码。

分析:先找一个字符数组pardStore将大小写字母和数字都放进去(数组长度为62),用一个Random随机一个数来随机每个密码

代码演示:

package cn.itcast.demo1;import java.util.Random;
import java.util.Scanner;public class RAndom {public static void main(String[] args) {char  [] pardStore = new char[62];for (int i = 0; i <26 ; i++) {pardStore [i] = (char)('A'+i);}for (int i = 26; i <52 ; i++) {pardStore [i] = (char)('a'+(i-26));}for (int i = 52; i <62 ; i++) {pardStore [i] = (char)('a'+(i-52));}Scanner sc = new Scanner(System.in);int seed = sc.nextInt();Random r = new Random(seed);for (int i = 0; i < 4; i++) {int n = r.nextInt(62);System.out.print(pardStore[n]);}}
}

JAVA常用类 ——Random类相关推荐

  1. 常用API——Random类

    常用API--Random类 Random类 简介 使用方法 实践 Random类 简介 Random类位于java.util包中,主要用来生成随机数 使用方法 1.导包 import java.ut ...

  2. java.util类,GitHub - yutaolian/JavaUtils: 总结的一些Java常用的util类

    JavaUtils 总结的一些Java常用的util类 ###1.格式化时间 SimpleDateFormat(DateFormat)实现线程安全的使用 众所周知SimpleDateFormat(Da ...

  3. 10、Scanner类.Random类.Arraylist类

    10.Scanner类.Random类.Arraylist类 1.API概述和使用步骤 2.Scanner概述及其API文档的使用 3.Scanner的使用步骤 4.Scanner练习一_键盘输入两个 ...

  4. Java常用接口与类——Math类、Random类、BigDecimal类

    >Math类 功能:Math类是用来搞数学相关计算的类,构造函数私有化,有很多静态方法: >方法举例,详见API文档 Math.random();//随机返回一个零到一百之间的小数: 另外 ...

  5. Java 基础之 Random类和Math.random()方法

    Random类 import java.util.Random;public class randomTest {public static void main(String args[]){Rand ...

  6. java 引用数据类型Scanner类 Random类

    Scanner类是属于引用数据类型 与定义基本数据类型变量不同,引用数据类型的变量定义及赋值有一个相对固定的步骤或格式. 基本数据类型定义:数据类型  变量名  =  值;            引用 ...

  7. java常用文件工具类

    java常用工具类(一) 主要是Java操作文件及及IO流的一些常用库,是Apache对java的IO包的封装,这里面文件类工具有两个非常核心的类FilenameUtils跟FileUtils,IO流 ...

  8. Java 正则表达式 Pattern和Matcher类 Math类 Random类 System类 BigDecimal类

    14.01_正则表达式 A:正则表达式:正确规则的表达式,规则java给我们定的.指一个用来描述或者匹配一系列符合某个句法规则的字符串的单个字符串.其实就是一种规则,有自己特殊的应用.B:组成规则:规 ...

  9. Java常用加密算法工具类

    import java.io.IOException; import java.math.BigInteger; import java.security.MessageDigest; import ...

  10. Java 常用对象-Date类和Calender类

    2017-11-02 22:29:34 Date类:类 Date 表示特定的瞬间,精确到毫秒. 在 JDK 1.1 之前,类 Date 有两个其他的函数.它允许把日期解释为年.月.日.小时.分钟和秒值 ...

最新文章

  1. [安卓基础] 006.打开另一个Activity
  2. 向数据中心劳动者致敬!
  3. angular.js入门基础(一)
  4. vue中数组长度_如何在Vue.js中获取计算数组的长度
  5. 语义slam_语义SLAM: 接轨深度学习的新方向
  6. UVA10018 Reverse and Add【回文数+水题】
  7. Memset、Memcpy、Strcpy 的作用和区别(转)
  8. Windows XP/2003 Server操作系统源代码完整版下载链接
  9. pmp华为内部资料,成功的项目管理是怎样的?
  10. python中ahp的代码_AHP | 层次分析法原理及Python实现
  11. python制作卡通表情包_python——简单生成表情包
  12. windows 10 账号密码策略及规则
  13. input标签详解,用户注册表单
  14. 计算机一级ppt加水印,2017年计算机一级WPS辅导:WPSOffice2007中插入水印和改变背景色...
  15. iOS 开发实践之Auto Layout(From Vincent Sit)
  16. 心学与技术-大学之道和尽心知性
  17. oracle分区表备份恢复
  18. Python: 傅里叶级数
  19. 计算机专业的可迁移技能,动词可迁移技能的发现.PPT
  20. 微信忘记支付密码,实名认证的身份证又没有办理银行卡怎么破?(未解决)

热门文章

  1. php steam 第三方登录,Steam第三方登录
  2. 用python编计算器_python编计算器
  3. python数据结构和算法pdf_用python解决数据结构和算法.pdf
  4. 机器学习,深度学习的资料和工具库大全
  5. testbench实例 vhdl_VHDL的testbench的编写(转)
  6. linux系统 锐捷_ubuntu 下锐捷完美客户端mentohust
  7. SQL2005开发版下载地址
  8. 手把手学ROR三——Rails的代码方式
  9. Sql Server 2000 挂起怎么办
  10. 易语言网页html代码大全,易语言网页操作取网页源码