- package Test;
- public class EqualsDemo {
- public static void main(String[] args) {
- Person p = new Person("Tony",26);
- Person p1 = new Person("Tony",26);
- System.out.println("hashcode比较:" + (p.hashCode() == p1.hashCode()));
- System.out.println("equals比较:"+ (p.equals(p1) == true));
-
- }
-
-
- }
- class Person{
- String name;
- int age;
- Person(String name,int age){
- this.name = name;
- this.age = age;
- }
- @Override
- public boolean equals(Object obj) {
- Person p1 = (Person)obj;
- return this.name.equals(p1.name)&& this.age== p1.age;
-
- }
- }
- /**
- * 默认的equals方法是要比较hashcode值的,但是内存中只要new一个对象,就在堆里面生成新的空间,所以两次new的值hashcode永远不会相等,
- * 在实际应用中比较是否相等一般是需要比较属性的,所以我们需要重写equals方法。
- */
复制代码 |