1.==
- ==是一个判断相等的运算符
这个运算符的两边如果都是基本数据类型,判断的是基本数据类型的值是否相等
比如:
int i=3;
int j=3;
System.out.println(i==j);//返回值为true
- 这个运算符的两边如果是某个类类型的对象,判断的是两个对象是否是同一个地址
如果地址相同,那么内容就一定相同
如果地址不同,内容就不一定相同
2.equals
- equals方法不能判断基本数据类型的数据,只能判断对象是否相等
如果没有重写equals方法,就是继承自Object的equals方法,Object类中的equals方法判断的是地址
判断String类型的数据除外,Object类中的equals方法在判断String类型数据时,判断的是内容
Object中equals()方法代码如下:
public boolean equals(Object anObject) {
if (this == anObject) {
return true;
}
if (anObject instanceof String) {
String anotherString = (String)anObject;
int n = value.length;
if (n == anotherString.value.length) {
char v1[] = value;
char v2[] = anotherString.value;
int i = 0;
while (n-- != 0) {
if (v1[i] != v2[i])
return false;
i++;
}
return true;
}
}
return false;
}
- 如果某个类重写了equals方法
那么就看equals方法中实现的判断是什么,一般情况下判断的是equals两端对象的内容.
在java的类库中,像String,封装类(Integer,Float,Double…)的equals判断的额就是内容