数组的长度会改变吗?
int[] a ={5,6,7};
int[] b = new int[4];
b=a;
for (int i : b) {
System.out.println(i);
}
System.out.println(b.length);
会发现结果是5,6,7和3。这样看来是不是数组b的长度就从4变成了3。
在我们初始化数组后,如果想访问这个数组,则只能通过这个数组的引用变量来访问它。当我们初始化数组a的时候,系统内存实际产生了两块内存区栈内存和堆内存,{5,6,7}存放在堆内存,而栈内存则存放的是{5,6,7}的引用即地址值。再来看数组b,由于数动态初始化创建的,堆内存存的是{0,0,0,0},栈内存的b则是它的地址值。b=a,将a指向b的后,栈内存的b则和a一样变成了{5,6,7}的地址值。而原来的数组{0,0,0,0}则没有变,只是没有对象引用了,当没有对象引用,这个数组也就变成了垃圾,会被垃圾回收器回收(我也不懂咋回收)。
最后可以看出,数组一旦创建,它的长度是不会再发生变化的。
数组长度能改变吗
最新推荐文章于 2024-02-09 14:51:51 发布