解决方案 »

  1.   

    Java函数调用,永远是传值。但String是一个引用类型,所以String变量的值不是字符串的内容,而是这个字符串的地址。
    所以你传一个String到别的函数,实际给的是String的地址。
      

  2.   

    String对象只能引用传递。你这里的递归调用的时候,传递的肯定也只会是引用。
    你提到的帖子与是值传递还是引用传递并没有关系,我在39楼做了回复,你可以看看。
      

  3.   

    4楼解释是对的,new 出的String 是对象,本应传递引用,但String 是不可变对象,所以在其值创建后,无法对其值做修改,所以跟值传递一个效果。
    顺便说一下,8个基础类型对应的包装类型全部都是不可变对象,都是值传递。
      

  4.   


    不能说不可变对象传递的就是值吧。只能说传进去虽然是对象的引用,但是值依然无法改变而已,效果与传值是一样的。4楼这样说没有问题,可以认为传递的是引用的值。但是我觉得这样说法对于java新手来说很容易误会。
      

  5.   

     恩 你讲的更严谨一些。
    我现在更倾向于说java传递的是引用,引用值是否可变就分情况讨论了。
    单单说java值传递或者引用传递感觉太纠结了,新人太容易被绕进去,当然我也被绕进去好长一段时间。
      

  6.   

    谢谢各位的答案luotitan 应该是运行了那段代码vnvlyp 对Frame的解释我现在还记着呢rumlee 在39楼做回复 还告诉了我magi1201 还带着勋章呢我想到了一个词 :差 距