我在 Facebook 群组中遇到了这个问题。我知道我应该使用 equals()
方法,但我想知道为什么会这样
class Main
{
public static void main (String[] args)
{
String s1="abc:5";
String s2="abc:5";
System.out.println(s1==s2);
System.out.println("s1 == s2 " + s1==s2);
}
}
输出
true
false
最佳答案
这是由于运算符的优先级。 '+' 的优先级高于 ==。您实际上是在将 ("s1 == s2"+ s1) 与 s2 进行比较。
关于Java == 行为模棱两可,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20055341/