String object is an immutable object

解决方案 »

  1.   

    public static void setName(String str)
        {
            str = str + "test";
        }
    不可能改变传入的参数str的
      

  2.   

    1.      int i=5;
            System.out.println(i);
            setNum(i);
            System.out.println(i); 
    没有什么好说的,是传值的,修改的是参数的拷贝,实参没有改变
    2.        String myStr = new String("hello");
            System.out.println("myStr is " + myStr);
            setName(myStr);
            System.out.println("myStr is " + myStr);
    正常来说,参数类应该是传址的,实参应该改变,但偏偏String类是非可变类,所以实参没变,用BufferString就变了
      

  3.   

    谢谢上楼的回复,
    的确我换了StringBuffer就可以看到变化了,
    在请问那如果是简单类型(比如int),在传参的时候是传值还是传址
      

  4.   

    最好不要看一些凌乱的文章,这样知识积累的不是很系统
    看一些java进阶书籍,有时间研究一下基本的java api(我也没有研究过)