equals与==越看越混,之前看到说equals比较的是两个引用是否指向同一个内存地址,而==比较的也是内存地址(对于引用而言,对于数据比较的是数据类型是否相同),看起来两者没什么区别,现在又说equals比较的是引用的内容是否相同,不是比较内存地址吗???
内存地址与引用内容有什么区别啊???
还有就是上面的理解如果有误的话也请指出来,基础比较差,多谢指教!!!
这个我也查了一下,之前也有疑问,查了之后才知道equals一般情况下确实比较的是地址,但有种情况例外,就是当equals()的括号里面是字符串的时候比较的是内容,应该不会错,希望对你有帮助,加油
请问这个equals在哪一节讲过,忘了哪一节了
在Java中,String 、Math、还有Integer、Double。。。。等这些封装类重写了Object中的equals()方法,让它不再比较其对象在内存中的地址,而是比较对象中实际包含的整数的值,即比较的是内容。
java大多数类库都实现了equals()方法,以便用来比较对象的内容,而非比较对象的引用。就像String类
你可以这么理解:equals比较的是字符串的具体内容,而==比较的是对象的内存地址。
他里面说的应该是对的,我测试的结果也是一样的,就是equals只比较内容,而==不仅比较内容还要比较地址相等才能是true.