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判断的额就是内容