面试-“==”和“equals”有什么区别?
在各种博客可以查到很多关于这个问题的答案:= = 比较地址值,equals比较属性。
答案肯定不是面试官想听到的。
我们在使用==和equals进行比较的时候,必须分清楚比较的是“基本数据类型”还是“引用数据类型”。
那如果是基本数据类型一定会存在“栈地址值吗?”,答案肯定是不一定,我们还得考虑,对象在哪里声明,是在类中,还是在方法中,也就是说是全局变量,还是局部变量?
那如果是全局变量哪里来的地址值?(下篇区分全局,局部变量的存储位置)
所以说,这个问题中“==比较值(也可以说比较值和地址值),equals比较属性。