下边有一段Java小程序。执行到“// do stuff”这一行时已经创建一些对象与引用变量。你的工作是要判别哪个引用变量引用到哪个对象。引用变量不一定用到,对象也可能会被多个变量引用。对有引用关系的对象画线连接起来。
class HeapQuiz {
int id = 0;
public static void main(String [] args) {
int x = 0;
HeapQuiz [ ] hq = new HeapQuiz[5];
while ( x < 3 ) {
hq[x] = new HeapQuiz();
hq[x].id = x;
x = x + 1;
}
hq[3] = hq[1];
hq[4] = hq[1];
hq[3] = null;
hq[4] = hq[0];
hq[0] = hq[3];
hq[3] = hq[2];
hq[2] = hq[0];
// do stuff
}
} 引用变量: 堆对象:
A hq[0] 1 id = 0
B hq[1] 2 id = 1
C hq[2] 3 id = 2
D hq[3]
A hq[0] 1 id = 0
B hq[1] 2 id = 1
C hq[2] 3 id = 2
D hq[3]
E hq[4]
