数组的内存是连续分配的;
int [] array = {1, 2 ,3};

假设数组内存如上图所示,那么当我们增加数组长度时,就可能导致别的变量被覆盖,导致出错。
这时,有人会想,那减少长度也是可以的呀,但是这会出现一个现象,那就是突然,空出来一个内存空间。
如果内存空间一开始就分配好,那么会符合整体布局,这个空间可以和别的空间组合,变成一块更大的空间。
如下图所示:

综合上述原因,Java不允许修改数组长度,这也是Java安全性的体现之一。
本文探讨了Java中数组长度不可变的设计理念及其背后的安全考量。通过解释内存分配原理,阐述了改变数组长度可能带来的内存管理问题。
数组的内存是连续分配的;
int [] array = {1, 2 ,3};

假设数组内存如上图所示,那么当我们增加数组长度时,就可能导致别的变量被覆盖,导致出错。
这时,有人会想,那减少长度也是可以的呀,但是这会出现一个现象,那就是突然,空出来一个内存空间。
如果内存空间一开始就分配好,那么会符合整体布局,这个空间可以和别的空间组合,变成一块更大的空间。
如下图所示:

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

被折叠的 条评论
为什么被折叠?