工具类的定义:如果一个类中的方法全都是静态的,那么这个类中的方法就全都可以被类名直接调用,由于调用起来非常方便,就像一个工具一下,所以把这样的类就叫做工具类。
工具类的优点:提升代码复用性和开发效率。
案列:写一个生成随机验证码的工具类。
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;
}
}
点击查看代码
public class LoginDemo{
public static void main(String[] args){
System.out.println(identity.createCode(6));
}
}