JavaSE 第二十九讲 String类源代码深析 16.10.15

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

你可能感兴趣的:(JavaSE 第二十九讲 String类源代码深析 16.10.15)