这道题答案为什么是"a=123123,b=456"呢?
public static void main(String[]args)
{  
    StringBuffer a = new StringBuffer("123");
    StringBuffer b = new StringBuffer("456");

    test(a ,b);
    System.out.println(a);
    System.out.println(b);
}

static void test(StringBuffer a,StringBuffer b)
{

    a.append("123");
    b=a;
}

2个回答

test函数中传入的a和b只是形式参数,相当于一个临时变量。
在test函数中,a和主函数中的a都指向同一个StringBuffer对象,所以调用a.append时StringBuffer对象中的内容会变成“123123”。而b=a
只是将临时变量的b的内容指向了a变量所指向的StringBuffer对象,实际上的主函数中的b依旧指向自己的StringBuffer对象。

不知道这样解释能不能明白。 :)

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问