与我们可以使用==
或.equals()
在==
我们知道它会检查引用,但在.equals()
中它会检查内容。
假设有2个字符串说
String s =“SO”; String s1 =“SO”;
所以在这种情况下s1==s
和s.equals(s1)
都会给出真实的。
但是here它给了我错误的
所以我认为+
的优先级高于==
所以在这种情况下
System.out.println(""+s1==s);
它将被分割为(""+s1)==s
,现在“”+“s1将是一个新的String,因此新的String永远不会等于s
所以它的打印错误
我只是想知道我认为是否正确
答案 0 :(得分:1)
""+s1
在堆上创建一个新的String对象(因为它未声明为final
)。所以,参考文献不一样。