equals()方法和==号的区别及用法
1.两者比较的内容
- ==号可以比较基本数据类型,也可以比较引用数据类型。基本数据类型比较的是值,引用数据类型比较的是地址值。
- equals()方法比较的是引用数据类型,分为两种情况,若没有重写equals()方法,则比较的是两个对象之间的地址值,调用的是Object类的equals()方法。代码如下:
public boolean equals(Object obj) {
return (this == obj);
}
若重写了equals()方法,则调用的是重写后的equals()方法,比较的是两个对象的属性值。
2.String类中的equals()方法使用
- String类中equals()的源码
//调用equals()方法,传入要比较的对象
public boolean equals(Object anObject) {
//判断传入的对象是否是同一对象,此时比较的是地址值
if (this == anObject) {
return true;
}
//判断anObject是否是String的实例
if (anObject instanceof String) {
//强制转换,Object强转为String类型
String anotherString = (String)anObject;
//得到String字符串自身的长度
int n = value.length;
//判断参数的长度与自身的长度是否相等
if (n == anotherString.value.length) {
//创建两个字符数组,将两个字符串存入
char v1[] = value;
char v2[] = anotherString.value;
int i