Java 使用visualvm在不同堆转储中查找2个equals对象

Java 使用visualvm在不同堆转储中查找2个equals对象,java,memory-leaks,mat,visualvm,jmap,Java,Memory Leaks,Mat,Visualvm,Jmap,我的java应用程序中有一些内存泄漏。我已经使用jmap进行了2次堆转储。我看到有200个对象正在成长,我支持这是内存泄漏的原因。但我需要确认它是完全相同的对象。 我使用MAT和visualvm进行转储分析。 那么,有没有办法验证来自不同堆转储的两个对象是同一个对象?我的意思是可能有某种方法可以得到这个对象的哈希代码。 我曾尝试按对象id进行搜索,但正如我后来理解的那样,它是内存中对象的地址,因此对我来说毫无用处。如果两个heapdump来自同一个应用程序实例,则要比较的是对象id。同一个应用程

我的java应用程序中有一些内存泄漏。我已经使用jmap进行了2次堆转储。我看到有200个对象正在成长,我支持这是内存泄漏的原因。但我需要确认它是完全相同的对象。 我使用MAT和visualvm进行转储分析。 那么,有没有办法验证来自不同堆转储的两个对象是同一个对象?我的意思是可能有某种方法可以得到这个对象的哈希代码。
我曾尝试按对象id进行搜索,但正如我后来理解的那样,它是内存中对象的地址,因此对我来说毫无用处。

如果两个heapdump来自同一个应用程序实例,则要比较的是对象id。同一个应用程序实例,但据我理解,objectId实际上是内存中对象的地址。但是在Java中,对象的地址可以随时更改。如果两个heapdump来自应用程序的同一个实例,那么您要比较的是对象id。应用程序的实例在同一个实例中,但据我所知,objectId实际上是内存中对象的地址。但在Java中,对象的地址可以随时更改。