A == B 比较的是两个的引用,是否指向同一块内存地址。
A.equals(B) 比较的是A,B里面的内容是否相同,常需要复写 Class A 的equals 内容。
//比较A,B里面内容是否相同 equals 方法。
public class A {
String name;
int age;
public A (String name, int age){
this.name= name;
this.age= age;
}
public boolean equals( Object o) {
if( o instanceof A)
{
A a2= (A) o;
if(this.name == a2.name && this.age == a2.age)
return true;
}
else
return false;
}
}
== 比较的是两个内存地址
A a= new A ("simon", 25);
A b= new A ("simon", 25);
if( a== b) //false, 因为new 开辟了两个内存空间。
if(a.equals(b)) //true,调用复写的equals函数.