考虑java中的嵌套数组。数组的顶层是否包含引用到内部数组,还是内存实际上包含内部数组本身?在内存中如何实现Java嵌套数组?
如果您需要插图,假设我有权访问reverse
方法,该方法将通过执行多次交换来反转阵列。如果我在M * N嵌套数组的顶层调用reverse
,该方法将简单地交换引用(O(m)操作),还是将交换整个行(O(m * n)操作)?
考虑java中的嵌套数组。数组的顶层是否包含引用到内部数组,还是内存实际上包含内部数组本身?在内存中如何实现Java嵌套数组?
如果您需要插图,假设我有权访问reverse
方法,该方法将通过执行多次交换来反转阵列。如果我在M * N嵌套数组的顶层调用reverse
,该方法将简单地交换引用(O(m)操作),还是将交换整个行(O(m * n)操作)?
总之参考文献。数组本身很可能是连续的块,但这些元素引用的对象不太可能。
本文总结起来很好http://java.dzone.com/articles/what-does-java-array-look
我相信你可以找到大部分的Java入门书的答案(虽然它可能不是很明显)。
在Java中,嵌套/多维数组不是连续的块。它只是一个“引用数组”的数组。