【发布时间】:2020-02-20 14:29:38
【问题描述】:
我很好奇。 java 是使用像 C 或 C++ 这样的指针来按索引访问数组吗?使用 C 语言时,x[a] 可以转换为 *(x + a)。 Java语言呢?与 c 和 c++ 相同还是仅使用顺序搜索来访问元素?
【问题讨论】:
-
Java 不是 C,只能使用
array[index]语法访问数组。同样与 C 不同的是,您在运行时会收到错误index超出数组大小。 -
从某种意义上说,数组是围绕连续内存块的包装器,您可以通过偏移起点来访问其条目,您可以将它们视为引擎盖下的指针。
-
从技术上讲,我认为这是 JVM 的一个实现细节,它不是 Java 语言的要求,但可能所有合理的 JVM 实现在内部都使用等效的指针访问。
标签: java arrays pointers indexing