如果更改变量b
会发生什么情况,或者更改a
会怎样。订单与任何事情有什么关系。
我知道count = count + 1
,但这两个变量搞砸了我的大脑。
b = 7;
a = 7;
a = b;
a += 1;
b
会怎样?
答案 0 :(得分:8)
b
会怎样?
b
没有任何反应。
当你这样做时
a = b;
您正在复制b
中存储的值并将其放入a
。 (您不使a
成为b
的别名。)
当您执行a += 1;
时,您正在更改a
中存储的值(并且b
中存储的值保持不变)。
您可以在代码段后打印最终值来验证这一点:
System.out.println(a); // prints 8
System.out.println(b); // prints 7
如果更改变量
b
会发生什么情况,或者更改a
会怎样。订单与任何事情有什么关系。
a
和b
是两个独立变量,更改一个永远不会影响另一个。
订单很重要,因为当您a = b
b
时,a
的值被复制到a
,之前存储的a += 1
被丢弃。如果您在a = b
之前完成a
,则 ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ---------------------------------------------------------------------
[INFO] Total time: 1:29.773s
[INFO] Finished at: Wed Jun 17 15:46:10 IST 2015
[INFO] Final Memory: 34M/151M
[INFO] -----------------------------.
将再次恢复为7。
答案 1 :(得分:2)
int 是原始类型,您不复制引用但值本身。对于整数,这将采用相同的方式,因为它是不可变的类。
int b = 7;
int a = 7;
a = b;
a+=1;
System.out.println(a);// ->8
System.out.println(b);// ->7
答案 2 :(得分:1)
仍然是7。 integer是原始类型,如果将int变量分配给另一个int,则新值将接收其值。不是对象本身。
答案 3 :(得分:1)
b保持7 a变为8。
您可以使用System.out.println();
打印变量值,如果您有任何疑问,请自行查找。
那或者使用调试器。
答案 4 :(得分:1)
public static void main(String[] args) {
int b = 7; // b points to 7
int a = 7; // a points to 7
a = b; // b and a points to 7
a += 1; // a points to 8 now, b is still pointing to 7
System.out.println(a);
System.out.println(b);
}
<强>输出强>
8
7
当我们a += 1;
时,我们会更改a
中存储的值(b
中存储的值仍然相同)。