永发信息网

JAVA 中输入输出的问题

答案:5  悬赏:30  手机版
解决时间 2021-07-30 23:35
  • 提问者网友:孤山下
  • 2021-07-30 04:24

public static void main(String[]age)
{
StringBuffer a=new StringBuffer("A");
StringBuffer b=new StringBuffer("B");
operate(a,b);
System.out.print(a+","+b);
}

public static void operate(StringBuffer x,StringBuffer y)
{
x.append(y);
y=x;
}

结果:AB,B

为什么y=x后y的值还是B

最佳答案
  • 五星知识达人网友:未来江山和你
  • 2021-07-30 04:54
有一点一定要理解清楚, b和y是指向同一个内存对象,这是没有错的, 但是它们是不同的引用.
y = x; 是把y的引用指向了x, 但是b并不会指向x啊. 它们是两个不同的嘛.

全部回答
  • 1楼网友:舍身薄凉客
  • 2021-07-30 09:09
java是传递的值,不是引用!例如在C++中写的swap(a,b)函数拿到java中就不管用了!出了函数体后就消失掉了!
  • 2楼网友:患得患失的劫
  • 2021-07-30 08:27
append 这个方法在X值添加Y值而Y还是以前那个撒
  • 3楼网友:不甚了了
  • 2021-07-30 06:56

刚学java的时候也碰到过这种问题~

开始:a,x指向A ;b,y指向B

a -> A <- x

b -> B <- y

由x.append(y);

得:

a -> AB <- x

b -> B <- y

再由:y=x;

得a -> AB <- x

AB <- y

b -> B

x,y与a指向AB,b指向B!

所以x与y的值都为AB,a的值为AB,b的值为B!!

  • 4楼网友:荒野風
  • 2021-07-30 05:22

x和y都是形参

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯