class returntest
{
public static void main(String...args)
{
String name1 = "Test";
String s = new String("Test");
StringBuilder sb = new StringBuilder("Test");
System.out.println(name1.equals(sb)); //Line 1
System.out.println(name1.equals(s)); //Line 2
System.out.println(s.equals(sb)); // Line 3
System.out.println(s.equals(name1)); //Line 4
}
}
以下是输出
false
true
false
true
第 1 行返回,第 3 行返回 false。
我不明白为什么编译器不认为“name1”和“sb”包含相同的值
同样,编译器不认为“s”和“sb”包含相同的字符串(两者都是非原语)。
有人可以解释 line1 和 line3 输出吗?