String 中的 equals() 和 == :
equals() 就是比较值,而不是引用;
== 比较引用;
如果2个String是引用2个相同的字面值,则这2个字符串变量都指向这个字面值,因此它们使用 == 比较,返回 true;
如果 2者之一创建了新字符串对象,则用 == 比较就是 false;
例子:
equals() 就是比较值,而不是引用;
== 比较引用;
如果2个String是引用2个相同的字面值,则这2个字符串变量都指向这个字面值,因此它们使用 == 比较,返回 true;
如果 2者之一创建了新字符串对象,则用 == 比较就是 false;
例子:
public class Test {
public static String s1 = "s";
public static String s2 = new String("s");
public static void main(String[] args) {
String s = "s";
System.out.println(s == s1);
System.out.println(s == s2);
s1 = s1 + "";
System.out.println(s == s1);
}
/*
* 结果是:
* true
* false
* false
*/
}