我正在使用IntelliJ IDEA 8调试一些Java,但是这个问题可能适用于所有Java调试器。在变量列表中,它们显示为:
myVariable = {some.package.SomeClass@12345}
我很好奇类名后面的数字。确切的数字是多少?如果所引用的是相同的基础对象,则两个变量的编号是否相同?
提前致谢。
这是JVM报告的 objectId ,有关详细信息,请参见JDWP规范。
唯一标识目标VM中的对象。一个特定的对象将由JDWP命令中的一个正确的objectID标识,并在其整个生命周期内(或直到objectID被明确处置为止)进行答复。除非已显式地处理了ObjectID,否则无论引用的对象是否已被垃圾回收,ObjectID都不会再用于标识其他对象。objectID为0表示空对象。注意,对象ID的存在不会阻止对象的垃圾回收。任何尝试访问带有其对象ID的垃圾收集对象的尝试都会导致INVALID_OBJECT错误代码。可以使用DisableCollection命令禁用垃圾收集,但是通常不需要这样做。