由于
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是无关紧要的事实。
解决此问题的唯一方法是
test手动更新,即
counter++; test = counter;



