当前位置: 首页 > 面试题库 >

通过哈希码从内存中获取对象

堵才哲
2023-03-14
问题内容

我的问题与JVM的安全级别有关

我们如何通过证明哈希码来从内存中获取对象?

今天我在想。我在执行环境One中创建类A的对象。并从此处获取该对象的哈希码。

现在在另一个执行环境中,我想通过提供哈希码来返回A类对象。

我认为有可能。因为当我执行环境一时。我一次又一次地得到那个JVM返回相同的哈希码。

表示它首先在其缓存中找到对象。如果得到引用,则将其返回。

现在回到问题,我们必须了解在编写=时将复制哪些数据。

  Object a=new Object();// here as we know reference of new object will be stored in refvar a.

然后实际通过。

如果我们得到=(等于运算符)传递的数据。我们将能够从内存中获取对象。

谢谢


问题答案:

我们如何通过证明哈希码来从内存中获取对象?

您无法访问JVM的内部。即使那样,您仍需要扫描内存中的每个对象。与具有相同hashCode的多个对象相比,您还将遇到问题。顺便说一句:默认情况下,在您要求对象之前,对象没有哈希码。

我认为有可能。因为当我执行环境一时。我一次又一次地得到那个JVM返回相同的哈希码。

这仅适用于您,因为您正在重新创建生成哈希码的确切条件,进行了最细微的更改,并且将获得不同的哈希码。

表示它首先在其缓存中找到对象。如果得到引用,则将其返回。

通过it你的意思是你需要一个缓存来维持,没有这样的高速缓存存在于JVM。

现在回到问题,我们必须了解在编写=时将复制哪些数据。

Object a=new Object();// here as we know reference of new object will be

stored in refvar a.

然后实际通过。

引用已传递,就像您说的那样。没有其他的。



 类似资料:
  • 问题内容: 我在一个基于Java的系统中工作,我需要为视觉显示中的某些元素设置一个ID。一类元素是字符串,因此我决定使用String.hashCode()方法来获取这些元素的唯一标识符。 但是,我遇到的问题是,如果id为负,并且经常返回负值,那么我正在borks中工作的系统。一种快速的解决方案是仅在哈希码调用周围使用Math.abs()来确保得到肯定的结果。我想知道这种方法是,两个不同的元素具有相

  • 问题内容: 我不是在谈论String类或哈希码被覆盖的任何其他类。假设如果我只是创建该类的新对象,那么在任何情况下the或true 都将返回该对象的内存地址? 问题答案: 不必要。从文档(重点是我的): 在合理可行的范围内,由Object类定义的hashCode方法确实为不同的对象返回不同的整数。(通常通过将对象的内部地址转换为整数来 实现 , 但是JavaTM编程语言不需要这种实现技术 。)

  • 问题内容: 我了解到,哈希码是一个唯一标识参考号,它是一个十六进制数。 我的疑问是,参考数字代表对象的内存地址吗? 例如: 这段代码会返回我对象的内存地址吗? 问题答案: 哈希码不是唯一的标识。它只是一个数字,可以帮助您区分对象。两个不同的对象可能具有相同的哈希码,这很好。 HashCode特征: 如果obj1和obj2相等,则它们必须具有相同的哈希码。 如果obj1和obj2具有相同的哈希码,则

  • 我尝试此操作时出现以下错误 警告:fopen(/var/www/ajaxForm/loading.gif):无法打开流:在/var/www/curlmimage中没有这样的文件或目录。php第5行警告:fwrite()希望参数1是资源,布尔值在/var/www/curlmimage中给出。php第6行警告:fclose()希望参数1是资源,布尔值在/var/www/curlmimage中给出。ph

  • 问题内容: 我对HashMap有一个奇怪的问题。 有多个线程访问同一哈希图(不是线程安全的)。 有时,过程陷入困境。 当我检查线程堆栈时,我看到许多线程处于状态: 请注意,这种情况很少发生。并且不能按需复制。 为什么会卡住? 哈希图上没有同步。 键是字符串 问题答案: 有多个线程访问同一哈希图(不是线程安全的)。 听起来好像您在 没有 适当同步的线程环境中使用它。您遇到的问题是内存已损坏,因此线程

  • 我知道可以访问docker api,下面的命令运行得很好: 然而,我真的希望避免暴露与容器本身绑定,因为它是CI构建的一部分。是否有其他方法可以从容器本身中检索容器图像id/哈希(即),而不暴露并向它发出请求? 也许就像这里显示的Docker一样,如何从容器中获取容器信息?