只传递给后面的了。
前面的没变化。
因为String对象无论你调用内部的哪个方法,都将产生一个新的对象。这是String内部结构构成的。
你查看一下他的原代码酒会发现。

解决方案 »

  1.   

    楼上同志,谢了,这一点我清楚,我的意思不是问这个,是关于参数传递,要是其他的数据类型比如整型呢?代码如下:
    public class Test{
    public static void test(int a){
    a=a+10;
    }
    }
    是先给后面,还是同时给,然后又赋给前面的a?谢谢了!
      

  2.   

    我可能解释不对!参考啊! 你说到整型 是先给后面加完后在赋到前面里的!具体为什么我就不知道问SUN好了。中间好像有个小小的计算区! 以前遇到这个问题!忘记了!
      

  3.   

    这个比较特殊,int long char byte都是基本类型,
    只一个内存区,不会产生新对象,你不能用String的运行去类比基本数据类型的运算。a=a+1的运算是先把a+1的结果储存在临时变量里,彻底计算完成后,再给a,
    a的内存地址不变。
    String的变了。
      

  4.   

    刚才用一个叫cavaj的软件看了下编译后的类文件,得知,方法中a=a+10;是按a+=10;计算的,所以就不存在我问的了,但不知道是否是此解释!要是这样的话,那最开始我问的又如何接解释!
    谢谢!努力!:)
      

  5.   

    你输出一个,看一下结果,不就知道了吗?同意这个:
    -----------
    这个比较特殊,int long char byte都是基本类型,
    只一个内存区,不会产生新对象,你不能用String的运行去类比基本数据类型的运算。a=a+1的运算是先把a+1的结果储存在临时变量里,彻底计算完成后,再给a,
    a的内存地址不变。
    String的变了。-----------