在调试Java时解密变量信息

Jon*_*ott 13 java debugging intellij-idea

我正在使用IntelliJ IDEA 8来调试某些Java,但这个问题可能适用于所有Java调试器.在变量列表中,它们显示为:

myVariable = {some.package.SomeClass@12345}

我很想知道课程名称后面的数字.这个数字究竟是多少?如果两个变量是被引用的相同底层对象,那么它们是否具有相同的数字?

提前致谢.

Cra*_*der 14

这是JVM报告的objectId,详情请参阅JDWP规范.

唯一标识目标VM中的对象.一个特定的对象将通过JDWP命令中的一个objectID和整个生命周期中的回复(或者直到明确地放置objectID)来标识.一个的ObjectID没有重复使用,以识别不同的对象,除非它已被明确地布置,而不管被引用的对象是否已经被垃圾收集.objectID为0表示空对象.请注意,对象ID的存在不会阻止对象的垃圾回收.任何使用其对象ID访问垃圾收集对象的尝试都将导致INVALID_OBJECT错误代码.可以使用DisableCollection命令禁用垃圾收集,但通常不需要这样做.