String 的 equals方法
1.使用equals方法时,如果要对一个string对象进行与常量判断,常量应该放在前面,即"null1".equals(obj),可以少判断一次obj为null的情况
2.String的equals方法是内部实现过一次的
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;
}
根据源码,可以得到另外一个结论,如果一个obj tostring以后等于一个字符串,不代表这个obj可以被直接equals字符串,这样会返回fasle
本文详细解析了 Java 中 String 类的 equals 方法实现原理,强调了在比较字符串时将常量置于前面的重要性,避免不必要的 null 检查。同时,通过源码分析揭示了即使对象的 toString 方法与字符串相等,也不能直接用 equals 进行比较的事实。

331

被折叠的 条评论
为什么被折叠?



