2018-05-14

随机数

随机数:随机的生成的任意一个数(理论上)

一、Random类(通过相同的种子,产生的随机数是相同的)

  Random类用于生成一个伪随机数,它的构造器可以是无参数(以系统时间为种子)的也可以显式的传入一个种子。

  它可以输出各种类型的随机数;如果两个random的初始种子是一样的,那么他们产生的相同类型的随机数是一样的(无参看成参数相同)。

  public Random():使用默认的种子(以当前系统时间作为种子)

  public Random(long seed):根据指定的种子

----------------------------------------------------------------

二、TheadLocalRandom类

  是JDK 7之后提供并发产生随机数,能够解决多个线程发生的竞争争夺。是Random的子类。ThreadLocalRandom不是直接用new实例化,而是使用其方法TheadLocalRandom.current(),用于返回当前类对象。
  从Math.random()改变到ThreadLocalRandom有如下好处:
  我们不再有从多个线程访问同一个随机数生成器实例的争夺。
  取代以前每个随机变量实例化一个随机数生成器实例,我们可以每个线程实例化一个。

1 ThreadLocalRandom t=ThreadLocalRandom.current();
2 System.out.println(t.nextInt(50));//随机生成0~50的随机数,不包括50
3 System.out.println(t.nextInt(30, 50));//随机生成30~50的随机数,不包括50

----------------------------------------------------------------------------------------------------------------

三、UUID类

  UUID含义是通用唯一识别码 (Universally Unique Identifier),这 是一个软件建构的标准,在一台机器上生成的数字,它保证对在同一时空中所有机器都是唯一的。

  UUID是一个128位长的数字,一般用16进制表示。算法的核心思想是结合机器的网卡、当地时间、一个随机数来生成UUID。

  我们一般用来表示:随机的唯一的字符串。

1 String u=UUID.randomUUID().toString();//生成UUID,并将其转换成字符串
2 System.out.println(u);

  输出结果:

四、生成一个五位数的验证码

 1 String content="ABCDEFGHIJKLMNOPQRSTUVWHYZ";//创建23个大写字母的字符串
 2 content+=content.toLowerCase();//把大写字母转换成小写字母,相连接
 3 content+="0123456789";//连接0~9的数字。
 4 Random r=new Random();//创建一个随机数对象
 5 StringBuilder b=new StringBuilder(5);//创建空间大小为5的StringBuilder对象
 6 for (int i = 0; i <5; i++) {
 7     char n=content.charAt(r.nextInt(content.length()));//截取一个从0到content.length()之间的字符,循环输出5个不同的字符,追加到一起
 8     b.append(n);
 9 }
10 System.out.println(b.toString());//转成字符串输出5个字符

CharAt()方法返回位于字符串的指定索引处的字符。该字符串的索引从零开始。

nextInt()方法的作用是生成一个随机的int值,该值介于[0,n)的区间,也就是0到n之间的随机int值,包含0而不包含n。

StringBuffer里面的方法吧,字符缓冲对象追加信息
比如说:StringBuffer sb=new StringBuffer();现在sb里面什么也没有
sb.append("abc");可以将字符串abc追加进sb里面.你打印sb会打印出abc
当然你还可以拉着追加

参考:https://www.cnblogs.com/jiangxifanzhouyudu/p/6659670.html?utm_source=itdadao&utm_medium=referral

转载于:https://www.cnblogs.com/sunNoI/p/9036677.html

三、Java基础工具(1)_常用类——随机数相关推荐

  1. Java基础学习——第十章 枚举类注解

    Java基础学习--第十章 枚举类&注解 一.枚举类(enum) 1. 枚举类的概念 枚举类:类的对象只有有限个,确定的 线程状态:创建.就绪.运行.阻塞.死亡 当需要定义一组常量时,强烈建议 ...

  2. java课后习题七解析_《Java基础入门》_课后习题解析.doc

    <Java基础入门>_课后习题解析 <Java基础入门>课后习题 Java开发入门 一.填空题 1.Java的三大体系分别是_JavaSE_____._JavaEE_____. ...

  3. Java Review - 并发编程_原子操作类LongAdder LongAccumulator剖析

    文章目录 概述 小Demo 源码分析 重要的方法 long sum() reset sumThenReset longValue() add(long x) longAccumulate(long x ...

  4. Java基础语法(七)——类和对象

    文章目录 Java基础语法(七)--类和对象 一.类和对象的初步认识 二. 类和类的实例化 1.类的定义 2.实例化对象 3.如何使用类中的数据 三. 类的成员 1. 字段/属性/成员变量 (1)实例 ...

  5. IOS基础之Foundation框架常用类NSFileManager,DSDate,CGPoint,CGSize,copy,单例

    IOS基础之Foundation框架常用类NSFileManager,DSDate,CGPoint,CGSize,copy,单例 1.01_FileManager学习 // // main.m // ...

  6. 第四周 Java语法总结_内部类_常用类_getclass_toStrong_equals_clone_Scanner_String_StringBuffer_Integer_集合_插入排序

    文章目录 20.内部类 1.格式 2.外部类访问内部类 3.局部内部类 4.匿名内部类 1)方法的形式参数是接口 2)关于匿名内部类在开发中的使用 3)方法的返回值是接口或抽象类型 16.常用类 1. ...

  7. java 基础面试 英文_[Java面试] 面试java基础总结大全

    原标题:[Java面试] 面试java基础总结大全 基础知识: 1.JVM.JRE和JDK的区别: JVM(Java Virtual Machine):java虚拟机,用于保证java的跨平台的特性. ...

  8. Java基础知识体系_计算机与java

    Java基础知识体系 (一).计算机与java (二).变量与类型 (三).运算符 (四).流程控制 (五).数组 (一).计算机与java 1,计算机:硬件+软件 硬件:客观存在的各种计算机相关设备 ...

  9. 浅谈Java锁,与JUC的常用类,集合安全类,常用辅助类,读写锁,阻塞队列,线程池,ForkJoin,volatile,单例模式不安全,CAS,各种锁

    浅谈JUC的常用类 JUC就是java.util.concurrent-包下的类 回顾多线程 Java默认有几个线程? 2 个 mian.GC Java 真的可以开启线程吗? 开不了,点击源码得知:本 ...

最新文章

  1. vlc web 登录账号_怎么在web网页端解绑敬业签绑定的手机号?
  2. 深入理解Java内存模型(七)——总结
  3. freecodecamp_freeCodeCamp.org隐私权政策:问题与解答
  4. Redis面试 - 如何保证缓存与数据库的双写一致性?
  5. 三天打鱼两天晒网 (15 分)
  6. python列表输出斐波那契数列_Python|运用列表求斐波那契数列
  7. 如果有多个虚拟机,手动启动哪个
  8. [Java并发编程(三)] Java volatile 关键字介绍
  9. Spring读书笔记-----Spring的Bean之设置Bean值
  10. 【威联通Nas】安装docker版本的wiznote/wizserver
  11. 一个python的UG二次开发简单实例
  12. C++中begin、end、front、back函数的用法
  13. 前端面试题(css)
  14. 关于pr的一些实用小知识
  15. Win11怎么看用了多少流量?
  16. 自 下 而 上 分 析 法 的 一 般 原 理
  17. SpringBoot使用Netty实现远程调用
  18. vue 微信公众号 使用weixin-java-mp、JSSDK自定义分享
  19. 1.统计所输入字符串中单词的个数。2.删除一个list里面重复元素。3.将列表中的偶数变成它的平方,奇数保持不变。4.输入字符串,将其每个字符的ASCII码形成列表并输出.5.猜单词游戏
  20. 基于Arduino UNO R3的植物管家开发过程(一)

热门文章

  1. 飞得更高:(三)人不好招啊
  2. uLua中遇到的问题
  3. 我的Linux成长路---001 Linux学习初期计划
  4. EMC:欲占企业数据中心市场大半江山
  5. mysql连接,修改密码,增加用户,显示,导入导出
  6. 洛谷P1032 字串变换
  7. android—label窗口——基础编
  8. Android -- TouchDelegate
  9. jQuery.delegate() 函数详解
  10. vb.net中的部分代码