执行以下程序后的输出结果是()
1
2
3
4
5
6
7
8
9
10
11
|
public
class
Test {
public
static
void
main(String[] args) {
StringBuffer a =
new
StringBuffer(
"A"
);
StringBuffer b =
new
StringBuffer(
"B"
);
operator(a, b);
System.out.println(a +
","
+ b);
}
public
static
void
operator(StringBuffer x, StringBuffer y) {
x.append(y); y = x;
}
}
|
- A,A
- A,B
- B,B
- AB,B 答案:D 详解如下: StringBuffer a = newStringBuffer("A"); StringBuffer b = newStringBuffer("B");此时内存中的状态如下图所示:
-
publicstaticvoidoperator(StringBuffer x, StringBuffer y) {x.append(y); y = x;}进入如下方法后,内存中的状态为:
x.append(y);这条语句执行后,内存的状态为:
y = x;这条语句执行后,内存的状态为:
当operator方法执行完毕后内存中的状态为:因为方法执行完毕,局部变量消除。
有内存中的状态,可以知道最后的结果。