System.out.printl(1+2+"3");是33
为什么不是123 
System.out.printl("1"+2+3);是123 
为什么不是15

解决方案 »

  1.   

    这是java的运算符+的重载,运算符+会自动根据计算两边变量的类型进行运算,如果两边都是数字,+执行的是数字加减,如果两边至少有一边是字符串,+其实代表的是字符串的连缀操作
    System.out.println(1+2+"3") 首先计算1+2 ,两边是数字结果是 1+2=3,而后3+"3"因为右边是字符串3,执行字符串连缀结果33
    同样道理 "1"+2返回字符串"12"然后"12"+3返回字符串123
      

  2.   

    从左往右,1+2两个都是int 直接Int加了,然后3是string,转为string再加
    1是string,+2将2转为string+,然后3转为string+