数组长度能改变吗

数组的长度会改变吗?
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}则没有变,只是没有对象引用了,当没有对象引用,这个数组也就变成了垃圾,会被垃圾回收器回收(我也不懂咋回收)。
最后可以看出,数组一旦创建,它的长度是不会再发生变化的。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值