公共课程Test2 {
公共静态void主(String [] args){
System.out.println("3 + 6");
System.out.println(3 + 6);
System.out.println(3 + 6 + "buffer");
System.out.println("buffer" + 3 + 6);
System.out.println("buffer " + (3 + 6));
}
}
输出为
System.out.println(3 + 6 + "buffer");
是
9缓冲区
和
输出为
System.out.println("buffer" + 3 + 6);
是
缓冲器36
为什么有区别?以及为什么
System.out.println(3 + 6);
输出是
9
?
最佳答案
算术运算符从左到右解析。当您对字符串使用+
时,它会附加为字符串。
System.out.println(3 + 6 + "buffer");
那变成
System.out.println( 9 + "buffer");
而当你这样做
System.out.println("buffer" + 3 + 6);
评估为
// "buffer3" + 6
// "buffer36"
和
System.out.println(3 + 6)
没有字符串串联。因此,直接整数加法发生了。
的情况下
System.out.println("buffer " + (3 + 6));
您在
3+6
中添加了括号。由于较高的优先级,因此括号中的表达式优先计算。因此,这成为System.out.println("buffer " + 9);