ale*_*er1 4 java arrays
这是关于Java中内存分配的问题.
假设我有一个整数A [100]和另一个整数B [10] [10]的数组.他们在Java中需要相同数量的内存还是不同?如果是后者,有什么区别以及它如何与N一起成长?
我在这里只谈到Ns是正数2的幂,所以我们在这里谈论方形2D阵列及其可能的1D表示.
Tur*_*g85 9
绝对没有.
在C/C++中,2D阵列在"一个块"中为2D阵列分配所有内存.
在Java中,2D阵列是"阵列阵列".一维数组被分配在一个块中,但是一维数组可以是分散的.此外,"外部"数组(第二维)也需要堆内存,存储对1D阵列的引用.
因此,如果您分配维度m(外部)和n(内部)的2D数组,Java将创建一个m元素m数组和n每个元素数组.外部数组只存储对m内部数组的引用.
m
n
这个页面给出了Java中多维数组的一个很好的解释和可视化.
归档时间:
10 年,5 月 前
查看次数:
1885 次
最近记录:
7 年,5 月 前