b
栈中:
基本数据类型 == 比较的是数据 如上图num1==num2 为true
引用数据类型 == 比较的是地址 如上图dog1 == dog2 为false(因为dog1和dog2是引用变量名,其引用值是一个地址)
堆中:
引用数据类型的内容(堆中的对象及其属性)间的比较要使用equals()方法,用==无法比较。
上面对一模一样的两个对象dog1 和 dog2 用equals方法进行比较。理论上期望的得到的结果为true。
但是因为object的equals()比较源码如下图:
其实还是引用类型比较,比较的是dog1和dog2的地址
若是该equals()方法不重写,无法满足子类的要求,需要子类重写
代码:
1.
2.
上图光标选中的equals()方法调用的是String类中的equals()方法: