字符串比较中的意外结果在java中?

Rah*_*yal 1 java

public class HelloWorld {
    public static void main(String[] args) {
        String s1="yes";
        String s2="yes";

        System.out.println("-------The result is-----"+ s1==s2);
        System.out.println("-------The result is-----"+ (s1==s2));    
    }
}
Run Code Online (Sandbox Code Playgroud)

为什么上面的代码产生输出
"false"
-------结果是----- true

Jes*_*per 5

首先,你不应该用比较字符串==,而是用equals().

还有运算符优先级的问题.这个:

"-------The result is-----"+ s1==s2
Run Code Online (Sandbox Code Playgroud)

是相同的:

("-------The result is-----"+ s1) == s2
Run Code Online (Sandbox Code Playgroud)

因为+优先级高于==.