分析String源码所得

1.String 中没有对+进行重载,java中没有对运算符重载,String的+的操作是在编译的时候new StringBuilder,在调用append方法来进行+操作的。

2.String 源码分析

public boolean equals(Object anObject) {

        if (this == anObject) {

            return true;

        }

        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;

            }

        }

        return false;

    }

分析:

String 的 equals 包含了 “==“ ,双等号比较的是地址,地址相同,内容肯定相同,当地址不相同的时候,比较的是两个字符串中的每一个字符,完全相同则表示相等,返回true,否则返回false。

你可能感兴趣的:(分析String源码所得)