今天看到Object类中的equaals()方法:比较两个对象是否相等。
那问题来了,它和‘==’有什么本质上的区别吗,在用法上有什么要注意的?
编写一个测试类:
public class EqualsText {
public static void main(String [] args) {
String s1="abc";
String s2="abc";
bolean a= s1==s2;
System.out.println(t1.equals(t2));
System.out.priintln(a);
}
}
运行之后发现第一个输出为true,第二个为false
查阅手册后发现,equals()方法比较的是两者的内容也就是上面例子中的“abc”,而“= =”比较的是两者的引用(即储存地址),由于s1和s2是两个不同的变量,在寄存器中储存的地址肯定不同,所以在使用 “= =”比较时返回了false。
结论
在实际的开发中一定会遇到需要比较两个变量是否相等,不要使用“= =”进行比较,一般来说返回值全为false,要使用equals()方法来对其内容进行比较。