在Java语言中,对象有2种比较方式,分别为"==" 和equals()。这2种方式有本质的区别。
- “A==B” 比较的是两个对象A、B的地址是否相同;
- equals(A,B) 比较的是两个对象A、B的内容是否相同。
案例
//First.java
public class First {
public static void main(String args[]) {
// 对象比较
String c1 = new String("abc");
String c2 = new String("abc");
String c3 = c1;
// == 比较的是两个对象的地址是否相同
System.out.println("c2==c3的运算结果为:"+(c2==c3));
// equals() 比较的是两个对象的内容是否相同
System.out.println("c2.equals(c3)的运算结果为:"+(c2.equals(c3)));
}
}
对象内存分布
结果如下: