我所知
==
用于比较参考。
.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