由于test
引用counter
这个假设是错误的。在Java中,您不能引用变量。变量中存储的是一个值。该值可以是原始类型值或引用类型值。对于基元,值是基元的值。对于引用类型,
引用值(通常只是引用)是指向这些对象的指针,还有一个特殊的空引用,它不引用任何对象。
在
int a = 0;
int b = a;
计算该变量a
以产生一个值0
,并将该值存储在中b
。
在
Integer a = 0;
Integer b = a;
0
转换为Integer
直通Integer.valueOf(int)
和值,将对Integer
对象的引用存储在中a
。然后a
进行评估,生成对该Integer
对象的引用的值,并将该值存储在中b
。
同样,变量static
是无关紧要的事实。
counter++;
test = counter;