equals方法 和 ==
equals
Object类中,equals比较的是内存地址;
//equals方法来源于Object类
public boolean equals(Object obj) {
return (this == obj);
}
String中,equals方法的参数是String的话就比较内容,不是String就比较地址;
//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;
}
String s1 = "s";
String s2 = new String("s");
System.out.println(s1==s2); //false
System.out.println(s1.equals(s2)); //true,如果是String的话,就比较内容
==
== 比较的是内存地址;
如果是基本数据类型,比较的是值是否相等;