Objects类和Random类的使用
Objects类
1.Objects类是一个工具类。objects类提供了一系列操作一个对象Object的实用方法,在Objects类中,所有的方法都是static修饰的,即静态的方法,可直接通过类名.方法名 进行调用。
package com.softeem.lesson17;
import java.util.Objects;
public class ObectsDemo {
public static void main(String[] args) {
User u1 = new User(1, "softeem", "123456");
User u2 = null;
//
// if(u2 != null){
// System.out.println(u2.equals(u1));
// }
// 空指针安全的对象比较
System.out.println(Objects.equals(u2, u1));
// 空指针安全的toString
System.out.println(Objects.toString(u2));
System.out.println(Objects.toString(u2, "0"));
// 空指针安全的hashCode
System.out.println(Objects.hashCode(u2));
// 为空判断
System.out.println(Objects.isNull(u2));
// 不为空判断
System.out.println(Objects.nonNull(u2));
// 检查对象不为空,若为空则抛出NullPointerException
System.out.println(Objects.requireNonNull(u2));
}
}
2.Objects相比超类Object多了一个字母s,这也是Java类命名的一个风格,Objects是一个工具类,Java喜欢在工具类后面加上字母s,如Arrays、Collections等。
Random类
1.Math类中提供了一个random()的方法,用于随机一个从0.0~1.0之间的浮点数,当实际需求有个性化的要求时,只能通过计算获取其他类型的随机数,实际操作相对比较麻烦;因此,Java中还提供了另一个专门用于生成各种需求的随机数类型,比如,随机整数,随机浮点数,随机布尔值。
package com.softeem.lesson17;
import java.util.Random;
public class RandomDemo {
public void m() {
for (int i = 0; i < 4; i++) {
Random r = new Random();
char c = (char) (r.nextInt(75) + 48);
if ((c > 57 && c < 65) || (c > 90 && c < 97)) {
i--;
} else {
System.out.println(c);
}
}
}
public static void main(String[] args) {
// TODO Auto-generated method stub
Random r = new Random();
// 随机布尔值
boolean f = r.nextBoolean();
System.out.println(f);
// 随机生成0.0-1之间的浮点数
double d = r.nextDouble();
System.out.println(d);
// int i = r.nextInt(5);
// System.out.println(i);
int i = (r.nextInt(51) + 50);
System.out.println(i);
//验证码生成器(随机生成(0-9a-zA-Z)中一个4位数的验证码)
RandomDemo rd = new RandomDemo();
rd.m();
}
}
2.Random类中实现的随机算法是伪随机,也就是有规则的随机。在进行随机时,随机算法的起源数字称为种子数(seed),在种子数的基础上进行一定的变换,从而产生需要的随机数字。相同种子数的Random对象,相同次数生成的随机数字是完全相同的。也就是说,两个种子数相同的Random对象,第一次生成的随机数字完全相同,第二次生成的随机数字也完全相同。这点在生成多个随机数字时需要特别注意。