System.out.print("i="+i)
  符号"+"的使用规则是什么?

解决方案 »

  1.   

    +操作符只被String重载了,所以+是一个二元操作符,两边可以是 String和基本数值类型
    需要考虑的就是类型提升顺序。
      

  2.   

    我个人理解,有2中情况吧,
    1。前数字,后数字,如1+1
    2。前字符串,后对象(需要重写对象的toString方法),如 String a = ""+1;
      

  3.   

    "+"这个运算符我觉得有三个用法:
    1、可以表示数值的相加2、可以表示字符串的连接
    如:"666"+"fgs"结果就为"666fgs"3、可以把非字符串的转换成字符串
    如:3.5+"1"结果就为"3.51"这样讲不知道算不算清楚,呵呵
      

  4.   

    + 有对数字的加操作, 也有String类型数据的链接。 但当String 和是数字连接时位置很关键:
    1. String a = "test";
       int b = 12;
       int c = 13;
       System.out.println(a + b + c);
    结果是test1213.2. String a = "test";
       int b = 12;
       int c = 13;
       System.out.println(b + c + a);
    结果是25a
      

  5.   

    很有可能是5楼说的第三种情况
    可为什么a+b+c变成b+c+a会出现不一样的情况呢?
      

  6.   

    java对 + 符号会自动重载
      

  7.   

    "+"被重载了,貌似这是Java里唯一的操作符重载,如果前后是数字就执行相加,如有一个为字符串就是重载了,直接连接就是了,被自动转型了。
      

  8.   

    +的执行顺序是从左往右的,a+b,结果必然是字符串test12,"test12"+c结果必然是字符串“test1213”
    b+c,结果是int25,25+“test”结果是字符串25test
    参见java相关类型转换规则。
      

  9.   

    一般来说,java作为面向对象语言不会出现c++中的operator+这种重载,但+应该算是个特例吧,毕竟每次连接字符串都调用String.conn会疯的这个不必深究,会用就行,学java不需要理解运算符重载,那个是c++的产物。