JAVA String中equals方法源码分析
初学java,很多人会在字符串判断中出现错误,本文介绍了关于equals的源码分析:
public boolean equals(Object anObject) {
//判断两个对象的引用地址是否相同
if (this == anObject) {
//如果引用同一个地址,则一定相等
return true;
}
//在判断这个对象是不是String类的实现
if (anObject instanceof String) {
//将这个对象转化为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;
}
}
//这个对象不是String对象的实现,既不是字符串,不相等
return false;
}