Java-随机数

Random

生成的是伪随机数,通过相同的种子生成的随机数也是相同的.
public Random() 默认使用的是系统时间作为种子
public Random(lang seed) 根据指定的种子

        Random rd=new Random();
        System.out.println(rd.nextInt(100));//范围0-99    
        Random rd1=new Random(10);//带参数后   得出的数都是固定的  
        System.out.println(rd1.nextInt(10)); //参数表示的不在是范围 变成了单个数字代表的随机数
ThreadLocalRandom

java7新增的类 用于多线程并发保证线程的安全性。因为构造器是私有的,只提供了一个方法 ThreadLocalRandom.current(); 用于返回当前对象.

ThreadLocalRandom ra=ThreadLocalRandom.current();
System.out.println(ra.nextInt(0,100));// 返回一个0-99之间的数
UUID

是一个128位长的数字 一般用16进制表示。随机电脑中唯一的字符串

String uuid =UUID.randomUUID().toString();
System.out.println(uuid);

例子:随机生成验证码

  • StringBuffer() 与StringBuilder() 方法的比较 前者全部加了synchronized 后者没有 用于字符串的多长度拼接
    String 拼接浪费内存而StringBuffer 直接是字符串的拼接,
 public static void main(String[] args) {

      String str="ABCDEFGHIJKLMNOQPLSTUVWXYZ";
      str+=str.toLowerCase(); //小写字符
      str+="0123456789";
      StringBuilder sb=new StringBuilder(5); //这里我们只需要5位即可
     for(int i=0;i<5;i++)
     {
         char ch=str.charAt(new Random().nextInt(str.length()));
         sb.append(ch);
         
     }
     System.out.println(sb);
  }

你可能感兴趣的:(Java-随机数)