牛客笔试题---引用传递和值传递

题目描述:

以下代码结果是什么?
public class foo {
public static void main(String sgf[]) {
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;
}
}

A 代码可以编译运行,输出“AB.AB”。
B 代码可以编译运行,输出“A.A”。
C 代码可以编译运行,输出“AB.B”。
D 代码可以编译运行,输出“A.B”。

考察点:引用传递和值传递

引用传递:同一块堆内存空间可以被不同栈内存所指向  

根据题目描述的出如图所示: 

 

往方法中传参,传的仅仅只是地址,而不是实际内存,所以不要以为y=x程序的执行,是 b=a的执行。这两者是不相等的 

猜你喜欢

转载自blog.csdn.net/weixin_43224539/article/details/94337354
今日推荐