String s1 = "testing";
String s2 = new String("testing");
System.out.println((s1.toString() == s2.toString()) ? "True":"False");
System.out.println(("another" == "another") ? "True":"False");
输出:
假
真
我知道我们不应该使用==来比较Java中的字符串,因为它会比较对这些对象的引用,而不是字符串本身,因此输出会是意外的。但如果我们比较两个字符串,它应该输出true。为什么会这样?另一方面,您可以看到第二个语句输出true作为例外。