【发布时间】:2010-02-24 00:43:39
【问题描述】:
我正在使用 IntelliJ IDEA 8 来调试一些 Java,但这个问题可能适用于所有 Java 调试器。在变量列表中,它们显示为:
myVariable = {some.package.SomeClass@12345}
我很好奇类名后面的数字。具体数字是多少?如果引用的是同一个底层对象,两个变量是否会有相同的编号?
提前致谢。
【问题讨论】:
标签: java debugging intellij-idea
我正在使用 IntelliJ IDEA 8 来调试一些 Java,但这个问题可能适用于所有 Java 调试器。在变量列表中,它们显示为:
myVariable = {some.package.SomeClass@12345}
我很好奇类名后面的数字。具体数字是多少?如果引用的是同一个底层对象,两个变量是否会有相同的编号?
提前致谢。
【问题讨论】:
标签: java debugging intellij-idea
即JVM上报的objectId,详情请看JDWP specification。
唯一标识一个对象 目标虚拟机。一个特定的对象将是 仅由一个 objectID 标识 贯穿始终的 JDWP 命令和回复 它的生命周期(或直到 objectID 为 明确处置)。 ObjectID 是 不重复使用以识别不同的 对象,除非它已明确 处置,无论是否 引用的对象已经是垃圾 集。 objectID 为 0 表示 一个空对象。注意存在 对象 ID 不会阻止 对象的垃圾回收。任何 尝试访问垃圾 收集的对象及其对象 ID 将导致 INVALID_OBJECT 错误代码。垃圾收集可以 使用 DisableCollection 禁用 命令,但通常不会 有必要这样做。
【讨论】: