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。