JDK提供的一些类,如String、Date、包装类等,重写了Object的equals方法,调用这些类的equals方法,x.equals (y),当x和y所引用的对象是同一类对象且属性内容相等时(并不一定是相同对象),返回true否则返回false。
例如:我们在学籍系统中认为学号相同的人就是同一个人。
public class TestEquals {
public static void main(String[] args) {
Object obj;
String str;
User u1=new User(02,"韩美美","1111");
User u2=new User(03,"韩一一","1111");
System.out.println(u1==u2);
System.out.println(u1.equals(u2));
String s1=new String("s");
String s2=new String("s");
System.out.println(s1==s2); //False //对象不同
System.out.println(s1.equals(s2)); //True //内容相同
}
}
class User{
int id;
String name;
String pwd;
public User(int id,String name,String pwd) {
this.id=id;
this.name = name;
this.pwd = pwd;
}
}
运行结果
false
false
false
true