gpt4 book ai didi

java - Java 相对于 C++ 的指针模型

转载 作者:行者123 更新时间:2023-12-02 13:24:17 26 4
gpt4 key购买 nike

The single biggest difference between Java and C/C++ is that Java has a pointer model that eliminates the possibility of overwriting memory and corrupting data.

这是教科书上的一句话。我一直认为使用指针的是 C++,而不是 Java。有人可以详细说明一下吗?

最佳答案

我反对在描述 Java 程序时使用“指针”这个词。我总是说“对象引用”(或只是“引用”)。

C 或 C++ 中的指针标识进程虚拟地址空间中的位置,而虚拟地址空间基本上是一个巨大的无类型数组。给定一个指针,您可以向其添加偏移量,并获取指向数组中不同位置的指针。给定两个指针,您可以计算它们之间的偏移量。

您无法使用 Java 对象引用执行任何操作。 Java 对象引用标识堆上的对象。该对象的地址可以(并且可能确实)不时发生变化,但它的身份始终是唯一的。

您无法向对象引用“添加偏移量”并获取不同的对象引用。这没有任何意义。

关于java - Java 相对于 C++ 的指针模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39045642/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com