【发布时间】:2013-01-13 13:33:41
【问题描述】:
我在a similar Stack Overflow thread找到了这个话题。
在 C++ 中,当你创建一个数组 int[i][j] 时,你会得到行的主要顺序,因此逐行迭代会给你提供包含更多有用数据的缓存。
在 java 中,没有二维数组,但它仍然在缓存方面创建了足够相似的东西。我的问题是,它是创建行大小的实际数据数组,还是创建行大小的指针数组?
或者,正如类似 Stack Over 线程上的最佳答案所说,它是否会做一些完全不同的事情,其中 int[5][8] 将是一个由 5 个指针组成的数组,这些指针指向任意大小的数组,它们的总和为 (5 *8)?
它说 java 制造了锯齿状数组,我想不出任何好的理由来证明这是真的。
【问题讨论】:
-
据我所知,Java 具有与 C/C++ 相同的二维数组,一维数组的数组。如果有人有其他说明的资源,请发布。
-
@AlexDiCarlo 引用链接:“在 Java 编程语言中,多维数组只是一个数组,其组件本身就是数组。这与 C 或 Fortran 中的数组不同。”我>
-
@Keyser 我刚才通过简单的谷歌搜索快速查看的每个资源都说 C/C++ 中的数组以相同的方式工作。例如,请参阅here。
-
@AlexDiCarlo 引用说
C,你的链接是关于C++。我只是引用官方文档。
标签: java caching multidimensional-array