【发布时间】:2016-02-18 04:41:44
【问题描述】:
所以,假设我有 2 个这样定义的数组:
int[] a = {1,2,3};
int[] b = a;
a[1] = 35; // b[1] becomes 35
b[0] = -5; // why would a[0] become -5?
所以,我可以推断更改 a 中的值会自动更改 b 中的值(b 指向 一个)。但是,如果我更改 b 中的值,为什么会影响 a?那岂不是好像 a 指向 b (它们是可以互换的)?
我对这个概念感到困惑,希望得到一些澄清。 任何意见,将不胜感激。谢谢。
【问题讨论】:
-
在您的代码中,
a和b是对相同内存位置的引用。 -
这可能对你有帮助:stackoverflow.com/a/1750197/3226981
-
a和b都指向同一个对象,该对象在内存中的某处 else 关闭。b不是指向a,它指向的是a指向的同一个对象。
标签: java variables pointers reference