equals()方法本质上便是==,比较的是两个变量是否指向同一块内存地址。
由于字符串String比较特殊,既可所以对象null,也能够详细的赋值,我们平时比较两个字符串时,常常比较的是值是否持平,而不太在意内存地址的问题,所以String类就掩盖重写了equals()方法实现比较字符串值持平。
Object.java
public boolean equals(Object obj) {
return (this == obj);
}
String.java
public boolean equals(Object anObject) {
if (this == anObject) {
return true;
}
if (anObject instanceof String) {
String anotherString = (String)anObject;
int n = length();
if (n == anotherString.length()) {
int i = 0;
while (n-- != 0) {
if (charAt(i) != anotherString.charAt(i))
return false;
i++;
}
return true;
}
}
return false;
}
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。