JAVASE--工具类(验证码)

发布时间 2024-01-09 21:13:35作者: Blizzard21

工具类的定义:如果一个类中的方法全都是静态的,那么这个类中的方法就全都可以被类名直接调用,由于调用起来非常方便,就像一个工具一下,所以把这样的类就叫做工具类。

工具类的优点:提升代码复用性和开发效率。

案列:写一个生成随机验证码的工具类。

1.首先介绍一下Random函数

(1). Random函数生成的是伪随机数,即有规律的随机数。
Random 对象在种子数相同的情况下,相同次数生成的随机数是相同的。比如两个种子数相同的 Random 对象,第一次生成的随机数字完全相同,第二次生成的随机数字也完全相同。默认情况下 new Random()使用的是当前纳秒时间作为种子数的。
random类的2种构造方法:

Random() 构造一个随机数生成器
Random(long seed) 用seed构造一个随机数生成器

(2).线程安全问题:线程安全指的是在多线程的场景下,程序的执行结果和预期的结果一致,就叫线程安全的,否则则为非线程安全的(也叫线程安全问题),如此看来random类是线程安全的。

(3). 随机数的取值范围:左闭右开

点击查看代码
import java.util.Random;
public class test {
    public static void main(String[] args) {
        Random r = new Random();
        int b = r.nextInt(10);//取值范围[0,9)
        System.out.println(b);
    }
}

2.介绍charAt()方法:用于返回指定索引处的字符

案例实现:

点击查看代码
package demo;

import java.util.Random;

public class identify {
    public static String createCode(int n) {
        String code = "";
        String data = "0123456789";
        Random r = new Random();
        for (int i = 0; i < n; i++) {
            int index = r.nextInt(data.length());//通过索引获取字符
            char ch = data.charAt(index);
            code += ch;
        }
        return code;
    }
}
* 接着可以在任何位置调用identity的createCode方法,如在登陆界面,注册界面等调用 以下为登陆界面:
点击查看代码
public class LoginDemo{
    public static void main(String[] args){
        System.out.println(identity.createCode(6));
    }
}
运行结果如下: 859857