在与字符串进行比较时,我们可以使用==
或.equals()
在 ==
我们知道它会检查引用,但在 .equals()
中它检查内容。
假设有 2 个字符串
字符串 s="SO"; 字符串 s1="SO";
所以在这种情况下s1==s
和s.equals(s1)
两者都会给出 true。
但是here它给了我错误
所以我假设是 +
优先级高于 ==
所以在这种情况下
System.out.println(""+s1==s);
它将被分割为 (""+s1)==s
现在 ""+s1 将是一个新字符串,因此新字符串永远不会等于 s
所以它的打印错误
我只是想知道我的想法是否正确
最佳答案
""+s1
在堆上创建一个新的字符串对象(因为它没有声明为 final
)。因此,引用文献不会相同。
关于java - 比较两个字符串文字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22033409/