jvm 中的 Java object ID
调试时,Eclipse 中的对象值附近显示一个对象 ID。
例如:28332 是会话对象的 ID。另一个示例:显示在“调试”面板中。这些 ID 既不是哈希代码,也不是 .waiting for: (id=101)
System.identityHashCode
有谁知道 - 如何获取对象的ID?this
调试时,Eclipse 中的对象值附近显示一个对象 ID。
例如:28332 是会话对象的 ID。另一个示例:显示在“调试”面板中。这些 ID 既不是哈希代码,也不是 .waiting for: (id=101)
System.identityHashCode
有谁知道 - 如何获取对象的ID?this
我假设它们在内部有一个 ,为每个对象分配一个唯一的(但除此之外毫无意义)的整数。这应该是 Eclipse 调试器的内部(而不是对象具有的特殊 ID)。你是在问如何做到这一点吗?IdentityHashMap<Object, Integer>
编辑:我会像这样设置断点(注意我不太精通Eclipse):
System.identityHashCode(object)
System.identityHashCode(object) == <whatever number you saw at the previous step>
或者,如果您感兴趣的对象具有可以使用的适当表示形式,您也可以尝试使用它而不是 。在所有情况下,您不必依赖 Eclipse 的内部对象 ID,而是捕获可以从对象本身派生的(或几乎)对象 ID。toString()
System.identityHashCode(object)
id