帮忙解释一下,拜托了
引用变量和里面的堆对象是什么关系
HeapQuiz[] hq = new HeapQuiz[5];
初始化,hq[0]
到hq[4]
都指向null
while (x < 3) ...
循环中创建了3个HeapQuiz对象
, 其中hq[0]
指向id == 0
的HeapQuiz
,hq[1]
指向id == 1
的HeapQuiz
,hq[2]
指向id == 2
的HeapQuiz
hq[3] = hq[1]
将hq[1]
中的引用赋值给hq[3]
,即hq[3]
也指向了id == 1
的HeapQuiz
hq[4] = hq[1]
,同上hq[3] = null
,将hq[3]
指向了null
hq[4] = hq[0]
,将hq[4]
指向了hq[0]
所指的id == 0
的HeapQuiz
hq[0] = hq[3]
,因为5
中hq[3]
已经指向了null
,所以hq[0]
也指向了null
hq[3] = hq[2]
,hq[3]
指向了hq[2]
所指的id == 2
的HeapQuiz
hq[2] = hq[0]
,因为7
中hq[0]
指向了null
,所以hq[2]
也指向了null
.
最后结果就是楼上的。
hq[0] = null;
hq[1] = 1;
hq[2] = null;
hq[3] = 2;
hq[4] = 0;