执行以下程序后的输出结果是()
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方法执行完毕后内存中的状态为:因为方法执行完毕,局部变量消除。
有内存中的状态,可以知道最后的结果。