java ==与equals (老问题了。。。)

==和equals()从Object类层次来看,都是比较内存地址(即,两个地址是否指向同一块存储区)。因为equals()的内部实现就是==。

下面是Object类中的equals()方法实现。

 public boolean equals(Object obj)  {     
 return (this==obj);     
}   

但是大多数java类都重写了Object类的equals(),使其比较存储的内容,java中String类就是非常典型的这种做法。

下面是String类equals()方法实现。

java ==与equals (老问题了。。。)_第1张图片

所以我们常说,==永远比较的是内存地址是否相等,equals()比较的是存储内容是否相等。

你可能感兴趣的:(java,object,String,equals,存储)