equals方法,用于比较两个对象是否相同,它其实就是使用两个对象的内存地址在比较。Object类中的equals方法内部使用的就是==比较运算符。 package Xuexi; public class Person { private String name; private int age; public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } @Override //判断是否是同龄人 public boolean equals(Object obj) { // TODO Auto-generated method stub //判断调用者和传进来的对象是否一致 if(obj==this){ return true; } if(obj instanceof Person){ Person p=(Person)obj; return p.age==this.age; } return false; } package Xuexi; public class Test { public static void main(String[] args) { // TODO Auto-generated method stub Person p1=new Person(); p1.setAge(28); Person p2=new Person(); p2.setAge(17); //==比较的是两个引用类型的地址 //如果你的person没重写object子类,那么你的p1.equals(arr)调用的是object的equals方法,比较的是两个对象的内存地址,没有实用意义 //而我们的Person类如果比较的话应该比较年龄是否相同就要重写父类的equals方法 boolean b=p1.equals(p2); System.out.println(b); } }