public class Foo
{
public static void main (String[] args)
{
Foo f = new Foo();
StringBuffer a = new StringBuffer ("A");
StringBuffer b = new StringBuffer ("B");
f.operate(a, b);
System.out.println("a = " + a + "\n" + "b = " + b);
}
public void operate (StringBuffer x, StringBuffer y)
{
x.append(y);
y = x;
System.out.println("x = " + x + "\n" + "y = " + y);
}
}
输出:
x = AB
y = AB
a = AB
b = B
如上,operate方法中的y输出了AB,为什么输出的最后一行却是:b = B,而不是:b = AB?
难道b是以值传递的方式传入了operate方法中?那又如何解释a的输出呢?
谢谢!
{
public static void main (String[] args)
{
Foo f = new Foo();
StringBuffer a = new StringBuffer ("A");
StringBuffer b = new StringBuffer ("B");
f.operate(a, b);
System.out.println("a = " + a + "\n" + "b = " + b);
}
public void operate (StringBuffer x, StringBuffer y)
{
x.append(y);
y = x;
System.out.println("x = " + x + "\n" + "y = " + y);
}
}
输出:
x = AB
y = AB
a = AB
b = B
如上,operate方法中的y输出了AB,为什么输出的最后一行却是:b = B,而不是:b = AB?
难道b是以值传递的方式传入了operate方法中?那又如何解释a的输出呢?
谢谢!
解决方案 »
- inno setup打包后,调用一个batTest.bat批处理文件,需要inno setup安装时的路径和用户输入的IP,哪位大哥会啊
- 求教一个获取数据的问题
- Struts2中怎么在<% %>中取get、set传过来的参数值
- mysql 连续查询10次左右就假死,用struts+spring+hibernet 用的spring 里自带的hibernet的方法
- 大吼一声:我不想把SQL语句写入JAVA,应该怎么办?
- HibernateTemplate按条件删除的问题
- 在jbuilder9中写jsp程序,如何配置jdbc drive.
- CMP 2.0的疑问。
- 关于hibernate配置和SAE MYSQL的问题
- springmvc+spring+mybatis基础框架搭建
- java迷芒了........
- 谁能给一个JAVA的TCP/IP协议通讯获取数据的思路??
{
x.append(y);//这里的x并不是方法外的a,只是指向了和a一样的内存地址,执行x.append(y);后,往x志向的内存地址追加内容y,因为x和a指向相同的地址,所以在方法外,a的内容和x的内容是一样的
y = x; //这里的y不是方法外的b,只是指向了和b一样的内存地址,执行y=x后,只是把y的指向改变了,b没有任何改变
System.out.println("x = " + x + "\n" + "y = " + y);
}