公共课程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);

09-10 02:30
查看更多