==
双等于==是用判断两个对象的地址是不是一样的,就是判断是不是一个对象,基本数据类型中比较的是值,引用数据类型比较的是内存地址
equals
equals()方法的作用是判断两个对象是否相等,假如类没有重写这个方法,在进行比较时等价于==
如果类重写了这个方法,在进行比较时,两个对象的内容是否相等,假如相等返回true,反之返回false
示例
public class TestDemo10 {
public static void main(String[]args){
String a = new String("ab");
String b = new String("ab");
String aa = "ab";
String bb = "ab";
if (aa == bb){
System.out.println("aa==bb");
}
if (a == b){
System.out.println("a==b");
}
if (a.equals(b)) {
System.out.println("true");
}
}
}
输出结果是aa==bb,true
正如以上所说,==在进行对象比较时,比较的是对象的地址是不是一样,代码中两个string对象的值虽然一样,但是他们是两个实例,所以他们的地址不一样的,所以无法输出,然而string声明的基本数据类型a和b的值是一样的,所以在比较时比较的是值,他们得值是一样的所以能够输出;第三个a.equal方法比较的也是值,因为string中的equals被重写了,比较的是值!,所以也能够输出true.注意:object中的equals方法比较的是对象内存地址!
三连!!!