【发布时间】:2016-03-20 02:27:05
【问题描述】:
我的问题是关于 JVM 的安全级别
我们如何通过证明哈希码从内存中获取对象?
今天我在想。我在执行环境 One 中创建了一个 A 类的对象。并从此处获取该对象的哈希码。
现在在另一个执行环境中,我想通过提供哈希码来取回 A 类对象。
我认为这是可能的。因为当我执行环境一时。我一次又一次地得到JVM返回相同的哈希码。
意味着它首先在其缓存中找到对象。如果它得到引用,它只是返回它。
所以现在回到问题,我们必须了解当我们复制什么数据时 写=。
Object a=new Object();// here as we know reference of new object will be stored in refvar a.
那么实际上是经过的。
如果我们得到什么数据是通过 =(equal operator) 传递的。我们将能够从内存中获取对象。
谢谢
【问题讨论】:
-
通过调用对象的
hashCode()方法返回哈希码。如果您覆盖默认值,您可以为具有相同属性的对象返回相同的哈希码。默认实现(来自Object)并不能保证这一点。然而,最重要的是要注意 1) 哈希码不能唯一标识一个对象,以及 2) 哈希码并不代表对象的内存位置。 -
博斯科我对你很满意。但是他们有什么方法可以得到那个实际地址。或 java 库中的任何本机方法。