- ==用于判断两边的变量的值是否相等,如果是基本数据类型,就是判断他们的值是不是相等;如果==两边是对象的引用,那么指的是这两个引用是否指向同一个对象,及引用的值是否相等。
- equals()是Object里的方法。在Object的equals中,就是使用==来进行比较,比较的是引用。与==不同的是,在某些Object的子类中,覆盖了equals()方法,比如String中的equals()方法比较两个字符串对象的内容是否相同。
- hashCode()方法也是继承自Object,它用来获取一个对象的hash值,返回int值。Object.hashCode规定,equals()相等的对象,它们的HashCode()返回值也必须相等,否则无法与集合类结合在一起使用。(List,
Set, Hashmap..)
User user1 = new User("shan","23");
User user2 = new User("shan","23");
User user3 = user1;
System.out.println(user1.equals(user2));
System.out.println(user1.equals(user3));
System.out.println(user1==user2);
System.out.println(user2==user3);
String a = new String("shan");
String b=a;
String c = new String("shan");
System.out.println(a.equals(b));
System.out.println(a.equals(c));
System.out.println(a==b);
System.out.println(a==c);