• 三、Java基础工具(1)_常用类——随机数


    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

  • 相关阅读:
    CCF201509-3 模板生成系统(100分)
    CCF201509-3 模板生成系统(100分)
    CCF201512-3 画图(100分)
    CCF201512-3 画图(100分)
    CCF201403-3 命令行选项(100分)
    CCF201403-3 命令行选项(100分)
    Java---jdk与jre的区别
    Java--- J2EE、Java SE、Java EE、Java ME 区别
    Java---java ee和j2ee
    Java---null
  • 原文地址:https://www.cnblogs.com/sunNoI/p/9036677.html
Copyright © 2020-2023  润新知