关于传值和值的引用的问题!

王朝other·作者佚名  2008-05-31
窄屏简体版  字體: |||超大  

我以前还以为搞清楚了这个问题了,今天又发现一贴,又有点进步!

public class TestStringBuff {

public static void main(String[] args){

StringBuffer a=new StringBuffer("A");

StringBuffer b=new StringBuffer("B");

operate(a,b);

System.out.println(a+","+b);

}

static void operate(StringBuffer x,StringBuffer y){

x.append(y);

y=x;

}

}

这里print出来的值是AB,A

把我理解的写出来,也不知是不是对的。

operate(a,b);这时,传给方法的时对象的引用值,???

在x.append(y);时,a对象是“AB”,其引用值改变了,变成了“AB”对象的引用值

而 y=x;执行的时引用的拷贝,b对象没有变,只是变化了它的引用值,

而在方法main中保存的对象b没有改变,所以System.out.println(a+","+b);出来的是AB,A

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航