1.equals()方法,定义在Object类中,因此Java中每个类都有该方法。
对于Object类中equals()方法来说,它是判断调用equals()方法的引用与传进来的引用是否一样(指向同一个对象)。
对于Object类的equals()方法来说,等价于==。
2、对于String类的equals()方法来说,它是判断当前字符串与传进来的字符串的内容是否一致。
public class StringTest
{
public static void main(String[] args)
{
String str = new String("aa");
String str2 = new String("aa");
System.out.println(str.equals(str2));//true.
String str3 = "aa";
String str4 = "aa";
System.out.println(str3.equals(str4));//true.
System.out.println("----------------");
Object object = new Object();
Object object2 = new Object();
System.out.println(object.equals(object2));//false.
}
}
3、对String对象的相等性判断来说,推荐使用equals()方法,而不要用==。
public class EqualsTest
{
public static void main(String[] args)
{
Student s1 = new Student("zhangsan");
Student s2 = new Student("zhangsan");
System.out.println(s1 == s2);
System.out.println(s1.equals(s2));
}
}
class Student
{
String name;
public Student(String name)
{
this.name = name;
}
public boolean equals(Object anObject)
{
if(this == anObject)
{
return true;
}
if(anObject instanceof Student)
{
Student student = (Student)anObject;
if(student.name.equals(this.name))
{
return true;
}
}
return false;
}
}