C#/Java如何存储2D数组,它';s与C++不同

本文关键字:不同 C++ 数组 2D Java 何存储 存储 | 更新日期: 2023-09-27 17:58:13

正如我所知,C++通过将2D数组值放在一块内存(连续虚拟内存?)上来存储数组,这对于通过索引访问值来说很快。

我在读过这篇文章后提出了这个问题,"在C/C++中使用嵌套数组来存储2D网格是有效的,但在Java或其他内存管理语言中,这样做实际上会给你一个行数组,其中每个元素都是对列数组的引用,这可能不像你想要的那样对内存友好"。

"对列数组的引用"是否意味着它们实际上存储在内存中的许多小块中?

更新

对不起,我的问题应该是"如果Java将2D阵列存储在许多小块上,这对‘内存管理’来说如何容易?"?

C#/Java如何存储2D数组,它';s与C++不同

在MxN矩阵中,它对N个数组有M个引用。这就是为什么在C中,当你想将数组作为函数参数传递时,你必须告诉第二个维度,而在Java中,你不必这样做