【269天】我爱刷题系列(28)

叨叨两句

  1. 原来我居然是别人眼中的逗比。。。看来天性释放后,我也得从新认识本身了啊。

牛客网——java专项练习008

1

如下代码结果是什么?java

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”。app

这里简单地说,a,b,x,y就是四个指针。y原本指向的是b所指向的对象,可是一个“=”,y就指向了x所指向的目标便是a指向的对象,所以原来b所指向的目标并无发生任何改变。与y不一样的是,x进行的是对象操做,此时此对象在内存中是真正的本质上的改变。

往方法中传参,传的仅仅只是地址,而不是实际内存,因此不要觉得y=x程序的执行,是 b=a的执行。这二者是不相等的