equals()方法和“==”操作符的区别是什么?重写equals()方法的时候,我们还需要重写哪些方法?为什么?
(1)“==”比较的是一个对象在内存中的地址值,栈中的内容是否相同。
(2) equals()是针对引用的,比较的是引用类型的内容是否一样,堆中的内容是否相同
重写equals()方法的时候,需重写hashcode方法,这样比较的时候,比较的是两个对象的hash值,不同对象的hash值不同。
示例一:
package com.itheima;
public class equals {
public static void main(String[] args) {
// TODO 自动生成的方法存根
String s1=new String("sss");
String s2=new String("sss");
System.out.println(s1==s2);
System.out.println(s1.equals(s2));
}
}
结果如下:
false
true |
|