String类的源码分析有一点不懂

本人最近在看java的源码,我对String类的源码的equals方法有一点小问题

 public boolean equals(Object anObject) {
        if (this == anObject) {
            return true;
        }

这段代码看的不是太懂,请给我详细讲解一下,谢谢

首先的弄清楚string.equals方法作用,是用来判断2个字符串的值是否相等,这一步判断的是2个对象的地址是否相等,如果地址相等,显然这两个是同一个对象,他们的值必然相等,所以返回true

==,
1)对于原始数据类型。byte,short,char,int,long,float,double,boolean 
  他们之间的比较,双等号(==),比较的是他们的值。 
2)对于复合对象,双等号(==),比较的是两个对象的内存中的存放地址。

String 类的equals() 方法是覆盖了Object 类的方法,主要是增加了以下代码逻辑

        if (anObject instanceof String) {
            String anotherString = (String)anObject;
            int n = value.length;
            if (n == anotherString.value.length) {
                char v1[] = value;
                char v2[] = anotherString.value;
                int i = 0;
                while (n-- != 0) {
                    if (v1[i] != v2[i])
                        return false;
                    i++;
                }
                return true;
            }
        }

1、比较两个字符串的长度

2、比较两个字符串的字符数组是否完全一致