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函数.
本文详细解释了Java中使用==和equals方法的区别。==用于比较两个对象的内存地址是否相同,而equals方法则用于比较两个对象的内容是否一致。为了正确地进行内容比较,通常需要在自定义类中重写equals方法。

1万+

被折叠的 条评论
为什么被折叠?



