equals:
在Object中实现:判断内存地址是否一致;
public boolean equals(Object obj){
return this==obj;
}
可以看出equals不能用于基本数据类型的比较;因为equals在String、Date、Double、和Integrer包装类中进行了重写
eg、在String中:
public boolean equals(Object anObject) {
if (this == anObject) {
return true;
}
if (anObject instanceof String) {
String anotherString = (String)anObject;
if(anotherString.value==this.value){
return true;
}
所以在这些包装类里面equals判值是否相等,而非内存地址,一般我们自己定义的类只是继承父类Object而没有改写其中的equals方法,故而,equals在其中只能用做判值;
==:
在基本的八种数据类型中==用于判值;
非基本类型用作判内存地址是否一致;