今天我在想。我在执行环境One中创建了一个A类对象。并从此处获取该对象的哈希码。
我认为这是可能的。因为当我执行环境时。我一次又一次地得到JVM返回相同的哈希码。
表示它首先在其缓存中找到该对象。如果它得到了引用,它就会返回它。
现在回过头来看,我们必须了解当我们复制什么数据时 写=。
Object a=new Object();// here as we know reference of new object will be stored in refvar a.
然后实际上是通过了什么。
如果我们得到=(等于运算符)传递的数据。我们将能够从内存中获取对象。
由于
答案 0 :(得分:5)
我们如何通过证明哈希码来从内存中获取对象?
您无法访问JVM的内部。即使这样,您也需要扫描内存中的每个对象。除了具有相同hashCode的多个对象之外,您还会遇到此问题。 BTW:默认情况下,对象在你要求之前没有hashCode。
我认为这是可能的。因为当我执行环境时。我一次又一次地得到JVM返回相同的哈希码。
这只能起作用,因为你正在重新创建生成hashCode的确切条件,最轻微的改变,你会得到不同的hashCodes。
表示它首先在其缓存中找到该对象。如果它得到了引用,它就会返回它。
按it
表示您需要维护的缓存,JVM中不存在此类缓存。
现在回过头来看,我们必须了解在写=时会复制哪些数据。
Object a=new Object();// here as we know reference of new object will be stored in refvar a.
然后实际上是通过了什么。
如你所说,参考通过了。没别了。
答案 1 :(得分:1)
我想这是无关紧要的,因为哈希码可能与内存地址有关,也可能与内存地址无关 看看documentation
一般来说,每个JVM都有自己的内存堆栈,因此是否可以从其他JVM访问对象取决于JVM实现,我想这很少可能。