简述a.Equals(b)和a=b的区别
- a==b:当a和b指向同一对象时为true,即a和b指向内存和内存地址的内容都相同时才为true;(地址相同,内容必相同)
a.equals(b):当a和b的值相同时,即为ture;(只判断值相等)
详细的解释:
如果 a 和 b 都是对象,则 a==b 是比较两个对象的引用,只有当 a 和 b 指向的是堆中的同一个对象才会返回 true,
而 a.equals(b) 是进行逻辑比较,当内容相同时,返回true,所以通常需要重写该方法来提供逻辑一致性的比较。
例如,String 类重写 equals() 方法,所以可以用于两个不同对象,但是包含的字母相同的比较