假设我有这段代码
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));
'真实的游戏'
我很好奇为什么它不会在第一种情况下拍摄印刷品的第一部分。我只是想知道编译时会发生什么。
感谢。
答案 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。