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;
}
}