如果a = b,如果每个值分别改变会发生什么?

时间:2015-06-17 11:15:30

标签: java variables

如果更改变量b会发生什么情况,或者更改a会怎样。订单与任何事情有什么关系。

我知道count = count + 1,但这两个变量搞砸了我的大脑。

b = 7;
a = 7;
a = b;
a += 1;

b会怎样?

5 个答案:

答案 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会怎样。订单与任何事情有什么关系。

ab是两个独立变量,更改一个永远不会影响另一个。

订单很重要,因为当您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中存储的值仍然相同)。