【发布时间】:2010-10-26 21:23:18
【问题描述】:
我正在尝试分析一个应用程序,并且我有很多 sim.core.EndPoint$2 类型的实例
当我检查这些实例时,我确认它们不是 sim.core.EndPoint 类型,它们似乎是一个 EndPoint,还有一些不应该存在的东西。
VisualVM 中类型名称后的美元符号是什么意思?
谢谢。
【问题讨论】:
我正在尝试分析一个应用程序,并且我有很多 sim.core.EndPoint$2 类型的实例
当我检查这些实例时,我确认它们不是 sim.core.EndPoint 类型,它们似乎是一个 EndPoint,还有一些不应该存在的东西。
VisualVM 中类型名称后的美元符号是什么意思?
谢谢。
【问题讨论】:
这意味着它是 EndPoint.java 中定义的匿名内部类。
顺便说一下,ClassName$AnotherName 是在 JVM 中指定内部类的约定。
看看 EndPoint 定义了哪些匿名类。
【讨论】:
它肯定是一个编译器工件(对你来说是隐藏的,但它是工作所必需的)。
如果不是匿名类,可能是匿名对象引用封闭类的方式。您在匿名类中引用的“外部”是否有任何最终对象?
【讨论】: