数组的内存地址 - Java

发布于 2024-10-12 08:38:06 字数 32 浏览 5 评论 0原文

有人知道获取数组索引的内存地址吗? (如c中所示)

Does anybody know to get the memory addresses of an array indexes?
(like in c)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

挽清梦 2024-10-19 08:38:06

Java 中没有程序员可实现的“地址”概念。在 C 或 C++ 等语言中,对象的身份等同于它们的地址 - 如果两个对象位于同一内存位置,则它们是同一个对象。在 Java 中,身份的概念与对象的地址是解耦的。这允许进行一些 C++ 中无法实现的优化。例如,理论上,垃圾收集器可以在内存中移动对象以避免碎片,只要它修改引用以使它们指向正确的位置。由于程序员无法直接访问内存地址,因此这种操作是允许的。在 C++ 中,它不起作用,因为编译器无法判断内存中的特定位模式是否是某种编码的指针。

There is no programmer-realizable notion of an "address" in Java. In a language like C or C++, objects' identities are equated with their address - two objects are the same object if they live in the same memory location. In Java, this notion of identity is decoupled from the object's address. This allows some optimizations that are not possible in C++. For example, the garbage collector could, in theory, move objects around in memory to avoid fragmentation, so long as it modifies references so they point to the right location. Because memory addresses can't be accessed directly by the programmer, this operation is permissible. In C++, it wouldn't work, because the compiler couldn't tell if a particular bit pattern in memory was some sort of encoded pointer.

云淡风轻 2024-10-19 08:38:06

你不能。 Java 没有直接的内存访问。

You can't. Java doesn't have direct memory access.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文