public class StrEqual {
public static void main(String[] args) {
String s1 = "hi";
String s2 = new String("hi");
System.out.println(s1);
System.out.println(s2);
if(s1 == s2){
System.out.println("s1 and s2 are equal");
}
else{
System.out.println("s1 and s2 are not equal");
}
}
}
在上面的代码s1和s2中都引用字符串“hi”。但为什么程序的输出是's1和s2不相等'?谢谢
答案 0 :(得分:4)
尝试
s1.equals(s2);
s1 == s2
比较对象引用,而不是字符串内容。
答案 1 :(得分:0)
==
运算符比较对象引用,即它们在内存中的位置。这就像比较指针。要实现“深度”平等,您需要使用equals
方法。