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;
}
http://www.iteye.com/topic/357506 同类的问题
test函数中传入的a和b只是形式参数,相当于一个临时变量。
在test函数中,a和主函数中的a都指向同一个StringBuffer对象,所以调用a.append时StringBuffer对象中的内容会变成“123123”。而b=a
只是将临时变量的b的内容指向了a变量所指向的StringBuffer对象,实际上的主函数中的b依旧指向自己的StringBuffer对象。
不知道这样解释能不能明白。 :)