Object类中,方法equals():
boolean equals(Object obj) {
return this==obj;
}
== 比较两个变量的值是否相等,对于基本类型,==直接比较变量值。但是,对于引用类型,对象的内容位于*存储区,而对象变量存储的是划分的内存区域的首地址,==比较的是对象变量里的地址值,若相等,则证明对象变量指向同一块内存区域。
Object内的equals等同与==运算,但是,如果要进行对象内容进行比较,则需要override(覆盖)equals方法。
如,String类重写了equals方法,而StringBuffer则维持Object里的equals方法。
String s1=new String("fool");
String s2=new String("fool");
s1.equals(s2) // true
StringBuffer sb1=new StringBuffer("fool");
StringBuffer sb2=new StringBuffer("fool");
sb1.equals(sb2) // false