为什么java在与布尔语句连接时会忽略print语句的第一部分?

时间:2015-09-06 22:55:02

标签: java system.out java-print

假设我有这段代码

public class Test{
    public static void main (String args[]) { 
        String s = "thrones";
        System.out.println("Game of" + "thrones" == s) ;
    }
}

上面代码块的输出正好 '假'

但不应该打印 '真实的游戏'

但是如果我为("权力" == s)加上一个括号,它会正确打印

System.out.println("Game of" +    ("thrones"==s));

'真实的游戏'

我很好奇为什么它不会在第一种情况下拍摄印刷品的第一部分。我只是想知道编译时会发生什么。

感谢。

1 个答案:

答案 0 :(得分:1)

First, it really prints false,因为"Game of thrones" != "thrones"

其次,您似乎回答了自己的问题。它将"Game of" + "thrones" == s解析为("Game of" + "thrones") == s,因为the + operator has a higher precedence than the == operator