Java 中的 Address 和 Reference 有什么区别?

What is the difference between Address and Reference in Java?

首先,我知道Java是按值调用。

但是,在某篇文章中,Java中没有地址,应该用引用这个词。在我看来,这两个词的解释是一样的。我错了吗?

  1. address和reference有什么区别,你有这么严格的定义非要区分这两者吗?

  2. 有些人使用术语内存引用。那么这是地址吗?还是参考?

我在各个网站上搜索过,但找不到可以回答我问题的文章,所以我发布了这个问题。 谢谢。

Java 规范没有介绍地址的定义,所以如果我们不谈论 JVM 实现就没有这样的东西。

如果我们看得更深一点,我们可以说地址和引用之间的差异是由 GC 引起的。特别是通过它重新定位对象的能力。

假设我们在内存中有对象o。它的地址是100500。在 GC 之后,所有指向 o 的引用仍将指向它,但 100500 不是该对象现在所在的位置。

这只是我的意见。正如我之前所说,地址没有官方定义。

地址 - 对象在内存中的确切位置。

引用是一个变量,您可以通过它访问对象。

在 Java 中你可以 get memory location of object,但你可能不应该。