为什么Java中的值没有变化

时间:2017-03-29 06:59:44

标签: java

我刚才想到了这个问题:使用 Java

int x = 1
int y = x;
x = 5;

为什么现在没有y = 5

4 个答案:

答案 0 :(得分:1)

因为yx的单独变量,尽管已使用原始值x初始化。

y不是x引用,也不是x对同一对象的引用。 (int是Java中的原语类型。)

答案 1 :(得分:1)

int x = 1
int y = x;
x = 5;

原始值复制在此行int y=x;这是{strong>不是x指向的对象的引用的副本。

供参考: http://javarevisited.blogspot.hk/2015/09/difference-between-primitive-and-reference-variable-java.html Is Java "pass-by-reference" or "pass-by-value"?

答案 2 :(得分:1)

int x = 1; //Some memory is initialized(say at location ox00001) and x is pointing to that

int y = x ; //Some memory is initialized(say at location ox00050) and value of x is copied to that memory 

x = 5 ; //value of memory location of x (i.e. ox00001) is changed to 5 but is not impacting memory location of y 

但是在非原始数据类型的情况下,它共享内存位置而不是数据。
供参考http://javarevisited.blogspot.in/2015/09/difference-between-primitive-and-reference-variable-java.html

答案 3 :(得分:0)

拿出两张纸。

在一个上写“x”,在另一个上写“y”。

现在在标有“x”的纸张上写上“1”。 (int x = 1;

然后取出您在“x”纸上看到的数字,并在“y”纸上写下相同的数字。 (int y = x;

然后删除“x”纸上的数字并改为写入“5”。 (x = 5;

注意标有“y”的纸张上的数字没有变化 变量的工作方式与此类似。