一、什么是API
简单来说:就是Java帮我们已经写好的一些方法,我们直接拿过来用.
二、常用API:Object、Objects
1、Object
一个类要么默认继承了Object类,要么间接继承了Object类,Object类是Java中的祖宗类,一切子类都可以直接使用。
Object类的常用方法:
public String toString()
默认是返回对象前在堆内存中的地址信息:类的权限名@内存地址。
开发中直接输出对象,默认输出对象的地址其实是毫无意义的,输出变量对象,更多的时候是希望看到对象的内容数据而不是地址信息,所以其存在的意义为:被子类重写,以便返回对象的内容信息,而不是地址信息。
//toString重写
public String toString() {
return "Student{name = " + name + ", sex = " + sex + ", age = " + age + "}";
}
public Boolean equals(Object o)
默认是比较当前对象与另一个对象的地址值是否相同,相同返回ture,不同返回false。
直接比较两个对象的地址是否相同完全可以用"=="替代equals,其意义为:被子类重写,以便子类自己来定制比较规则。
//equals重写
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Student student = (Student) o;
return sex == student.sex && age == student.age && Objects.equals(name, student.name);
}
2、Objects
Objects与Object还是继承关系,Objects类是从JDK 1.7开始之后才有的。
Objects类的常用方法:
public static boolean equals(Object a, Object b)
官方在进行字符串比较时,没有对象自己的equals方法,而是选择了Objects的equals方法来比较两个对象。Objects的equals方法比较的结果是一样的,但是更安全。比较两个对象的,底层会先进行非空判断,从而可以避免空指针异常,再进行equals比较。
public static boolean equals(Object a, Object b) {
return (a == b) || (a != null && a.equals(b));
}
public static boolean isNull(Object obj)
判断变量是否为null,为null返回true,反之。
public static boolean isNull(Object obj) {
return obj == null;
}