int a = 5;
 int b = 6;
 System.out.println(a+b+"str");一眼告诉我答案,直接贴上。

解决方案 »

  1.   

    int a = 5;
    int b = 6;
    System.out.println("str"+a+b);更有意思。
      

  2.   

    回 4 楼 :
    str56
      

  3.   

    为什么?我的第一反应是56str,因为,只要一有String类型参加运算,那么,所有运算,全部是使用String型。
      

  4.   

    面试题么?
    a+b (int + int)
    11 + str (int + string)
      

  5.   

    http://www.stuhack.com/biancheng/java/35195.html
      

  6.   

    17楼的链接没有说到基本数据类型与String的混合运算啊
      

  7.   

    我找了一下,也没有找到你说的那样的。
    我觉得应该String类型与其它类型运算,考虑前后顺序吧。
      

  8.   

    int a = 5;
     int b = 6;
     System.out.println(a+b+"str");这里的a+b+"str" 应该是(int+int)+string  
    int a = 5;
    int b = 6;
    System.out.println("str"+a+b);这里的"str"+a+b应该是开头是字符串就把加号当连接符,相当于(string+string+string)
    我是这么理解的。
    我再举一个例子:
    int a = 5;
    int b = 6;
    System.out.println("str"+(a+b));
    这个和第二个就明显有区别了。不知道这是不是楼主要的结果,这只是我个人的见解,呵呵。
      

  9.   

    Because "+"operator ' associativity is "left",也就是说+是从左到右进行运算的
    a + b + "str"编译器会先计算a + b,然后发现下一个操作数“str”为String类型的,就与他进行连接;同理,对于 "str" + a + b ,从左到右,编译器会先进行连接得到一个String类型的“str5”,再与b进行连接。 
      

  10.   

    楼主出这个问题是想要弄清怎么计算还是考我们。
    从左到右就算:11str
      

  11.   

    我只是觉得学习JAVA这么多年了,没搞清楚这个问题耻辱啊。
    什么玩意的表达式是从右向左的,我就记成了System.out.println();里边的内容了。