java中等于和equals的区别
面试的时候没答上,很受打击,特写在这里。
==是判断两个变量或实例是不是指向同一个内存空间
equals是判断两个变量或实例所指向的内存空间的值是不是相同
除了String和封装器,equals()和“==”没什么区别
但String和封装器重写了equals(),所以在这里面,equals()指比较字符串或封装对象对应的原始值是否相等,"=="是比较两个对象是否为同一个对象
==是判断两个对象是否是同一个对象
equals是进行值的判断
String a = new String("aaa");
String b = new String("a");
b += "aa";
则 a==b //错误
a.equals(b)//正确