为什么Java数组长度不可改变?

数组的内存是连续分配的;

int [] array = {1, 2 ,3};

假设数组内存如上图所示,那么当我们增加数组长度时,就可能导致别的变量被覆盖,导致出错。

这时,有人会想,那减少长度也是可以的呀,但是这会出现一个现象,那就是突然,空出来一个内存空间。

如果内存空间一开始就分配好,那么会符合整体布局,这个空间可以和别的空间组合,变成一块更大的空间。

如下图所示:

综合上述原因,Java不允许修改数组长度,这也是Java安全性的体现之一。 

发布了130 篇原创文章 · 获赞 66 · 访问量 30万+

猜你喜欢

转载自blog.csdn.net/zhuzj12345/article/details/102928478