当前位置: 技术问答>java相关
很简单一个问题,谢谢……
来源: 互联网 发布时间:2015-08-03
本文导语: 有这样的一个程序: public class Foo { 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 StringBuffer operate(StringBu...
有这样的一个程序:
public class Foo
{
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 StringBuffer operate(StringBuffer x,StringBuffer y)
{
x.append(y);
y=x;
}
}
输出结果是:AB,B
我看不懂在operate里面有y=x,为什么b没有变成AB呢?麻烦说明详细点:)
================================================================
CSDN 论坛助手 Ver 1.0 B0402提供下载。 改进了很多,功能完备!
★ 浏览帖子速度极快![建议系统使用ie5.5以上]。 ★ 多种帖子实现界面。
★ 保存帖子到本地[html格式]★ 监视您关注帖子的回复更新。
★ 可以直接发贴、回复帖子★ 采用XML接口,可以一次性显示4页帖子,同时支持自定义每次显示帖子数量。可以浏览历史记录!
★ 支持在线检测程序升级情况,可及时获得程序更新的信息。
★★ 签名 ●
可以在您的每个帖子的后面自动加上一个自己设计的签名哟。
Http://www.ChinaOK.net/csdn/csdn.zip
Http://www.ChinaOK.net/csdn/csdn.rar
Http://www.ChinaOK.net/csdn/csdn.exe [自解压]
public class Foo
{
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 StringBuffer operate(StringBuffer x,StringBuffer y)
{
x.append(y);
y=x;
}
}
输出结果是:AB,B
我看不懂在operate里面有y=x,为什么b没有变成AB呢?麻烦说明详细点:)
================================================================
CSDN 论坛助手 Ver 1.0 B0402提供下载。 改进了很多,功能完备!
★ 浏览帖子速度极快![建议系统使用ie5.5以上]。 ★ 多种帖子实现界面。
★ 保存帖子到本地[html格式]★ 监视您关注帖子的回复更新。
★ 可以直接发贴、回复帖子★ 采用XML接口,可以一次性显示4页帖子,同时支持自定义每次显示帖子数量。可以浏览历史记录!
★ 支持在线检测程序升级情况,可及时获得程序更新的信息。
★★ 签名 ●
可以在您的每个帖子的后面自动加上一个自己设计的签名哟。
Http://www.ChinaOK.net/csdn/csdn.zip
Http://www.ChinaOK.net/csdn/csdn.rar
Http://www.ChinaOK.net/csdn/csdn.exe [自解压]
|
y=x;属于句柄对句柄赋值
所以y指向了x执行的对象,不过y虽然是b穿过来的
但是改变y指向并没有改变b的指向
所以y指向了x执行的对象,不过y虽然是b穿过来的
但是改变y指向并没有改变b的指向