java问题:引用变量和while循环问题

wwodge7n  于 2021-06-29  发布在  Java
关注(0)|答案(1)|浏览(277)

所以大约两周前,我决定潜心研究并最终学习一门编程语言。我来这里当然是因为我选择了java。除了大量的在线资源外,我还购买了headfirstjava,我认为它在解释概念方面非常出色。我不得不承认它给的一些作业对初学者来说确实很难,但我一直在做直到现在。有人能告诉我这是怎么回事吗?赋值是确定哪个引用变量引用哪个对象。并非所有的引用变量都将被使用。

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];
  }
}

Here are the answers...

hq[1] -----> id = 1
hq[3] -----> id = 2
hq[4] -----> id = 0

我知道已经创建了一个数组。我想我知道hq[x]代表数组位置,但是x是如何分配的?jvm是如何通过循环的?答案贴在上面,但是我不知道循环是如何产生这些答案的。更具体地说,hq[1]如何表示id=1,hq[3]如何表示id=2等等。非常感谢您的帮助。提前谢谢。
在所有的笨蛋中最蠢的

ikfrs5lh

ikfrs5lh1#

首先,它在 while 回路:

hq[0] --> id = 0
hq[1] --> id = 1
hq[2] --> id = 2

然后把事情弄得乱七八糟:

hq[3] = hq[1];   // hq[3].id = 1
hq[4] = hq[1];   // hq[4].id = 1
hq[3] = null;    // null
hq[4] = hq[0];   // hq[4].id = 0
hq[0] = hq[3];   // null
hq[3] = hq[2];   // hq[3].id = 2
hq[2] = hq[0];   // null

所以你最终会得到:

hq[0] --> null
hq[1] --> id = 1
hq[2] --> null
hq[3] --> id = 2
hq[4] --> id = 0

相关问题