Anu*_*pta 3 java arrays reference
public class Test {
public static void main(String[] args) {
int[] a = {1, 2, 3, 4, 5};
int[] b = a;
int[] c = {6, 7, 8};
a = c;
for(int i = 0; i < a.length; i ++)
System.out.print(a[i] + " ");
System.out.print("\n");
for(int i = 0; i < b.length; i ++)
System.out.print(b[i] + " ");
System.out.print("\n");
}
}
Run Code Online (Sandbox Code Playgroud)
我已初始化数组a并将a的引用分配给新数组b.现在我初始化了一个新的数组c并将其引用传递给了数组a.由于数组b是对数组a的引用,因此b应该具有c中的新值,但b具有旧的a值.它背后的原因是什么?输出如下 -
输出 -
6 7 8
1 2 3 4 5
Run Code Online (Sandbox Code Playgroud)
不要被名单'list'激怒.这些图像来自python可视化,但原理在Java中是相同的
为数组a分配了一个新数组:
数组b被分配给后面的实例a:
为数组c分配了一个新数组:
最后a被分配给后面的实例c,b没有重新分配,仍然保留对旧的引用a:
从pythontutor.com上的可视化中获取的图像
| 归档时间: |
|
| 查看次数: |
1258 次 |
| 最近记录: |