==测试参考相等。
.equals()测试值的相等性。
我看过这篇文章How do I compare strings in Java?。我还是不明白为什么你比较时会弄错
// ...但它们不是同一个对象
new String("test") == "test"
// - >假的
或
String str1 = new String("JAVA");
String str2 = new String("JAVA");
System.out.println(str1==str2);
这是否因为名称不同或原因而发生?
答案 0 :(得分:1)
这是因为==运算符比较了内存地址,而不是内容。
请注意,String是一个对象,而不是一个原语,这可能是人们感到困惑的原因,您可以将原语与==进行比较,它会很好,但是对于您想要比较其内容的对象。
答案 1 :(得分:-2)
使用等于。
str1.equals(str2);