java中 == 与 equals
1、== 是操作符,equals() 方法
2、== 操作结果必须保存 ,boolean res = str1str2; if(str1str2){} … ,不能单独的 str1 ==str2 的语句存在; equals 方法可以;
3、== 不能操作符重载; equals可以方法重写;
4、== 对比的是变量的值(不管是基础类型的真正的值,还是引用类型变量存的地址,都可以看做数字,都是2进制数);
而对于Object【全部类的基类】的equals方法:
public boolean equals(Object obj) {
return (this == obj);
}
和 == 是一样的;但是如果具体的类重写的话,就不一定了;可以看String 、Integer … 重写方法,这些重写的方法一般是比较真正的值;所以重写的情况要看equals具体的代码,才能有可比性。