据我所知
==
用于比较参考文献。
.equals()
用于比较内容。
java中有一个字符串池。 例如,我创建了一个字符串,如下所示
String s ="ABC";
然后地址为12345
当我使用相同的字符串,即“ABC”时,相同的字符串将在两个地方共享。这意味着两个字符串的地址都相同。
==用于比较引用。在这种情况下,两个字符串的地址都是相同的。那么为什么我需要使用equals()方法。如果我错了,请纠正我。
public class StringComparison {
public static void main(String[] args)
{
String s1 ="test";
String s2 = "test";
if(s1 == s2)
System.out.println("BOTH ARE == ");
else
System.out.println("BOTH ARE != ");
String s3 = new String("test");
String s4 = new String("test");
if(s3 == s4)
System.out.println("BOTH ARE == ");
else
System.out.println("BOTH ARE != ");
}
}
OUTPUT:
BOTH ARE ==
BOTH ARE !=
但参考链接显示new String("test") == new String("test") ==> false