==和equals比较运算符

两者使用时注意如下用法:
1.当使用==来判断两个变量是否相等时,如果2个变量是基本类型的变量,且都是数值型(不一定要求数据类型严格形同),则只要两个变量的值相等,将返回true;
2.当使用==来判断两个引用类型的变量,必须它们指向同一个对象时,才会返回true;

3..String的equals方法判断两个字符串相等的标准是:只要两个字符串所包含的字符序列相同,及返回true;

String已经重写了Object的equals()方法,String的equlas()方法判断两个字符串相等的标准是:只要两个字符串所包含的字符序列相同,通过equals()比较将返回true,否则将返回false。

4.equals方法也是Object类提供的一个实例方法,因此所有引用变量都可以调用该方法来判断是否与其他引用变量相等。但这个方法判断两个对象相等的标准与==符号没有区别,同样要求两个引用变量指向同一个对象才会返回true。因此这个Obejct类提供的equals方法没有太大的实际意义,如果希望采用自定义的相等标准,可采用重写equals方法实现。Object默认提供的equals()只是比较对象的地址,即Object类的equals方法比较的结果与==运算符比较的结果完全相同。
5..如果希望采用自定义的相等标准,可采用重写equals方法来实现。.重写equals方法应该满足下列条件:
a).自反性:对任意x,x.equals(x)一定返回true;
b).对称性:对任意x和y,x.equals(y)返回true,则y.equals(x)也返回true;
c).传递性:对于中间变量相等后,可得知两者相等;
d).一致性:多次比较结果相同;

e).对任何不是null的x,x.equals(null)一定返回false;


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章