我正在对一款Java应用程序进行分析,分配最多的对象中有一个名称为com.x.y.ClassName$5
。
NetBeans Profiler和YourKit使用相同的命名约定。我不知道如何在谷歌上搜索这个命名问题。
类名后面的$5
是什么意思?
编辑: 似乎$5是第五个匿名类声明。我在生成的类上使用了javap来查找第五个匿名类。参考资料可以在 How to match compiled class name to an enum member in Java? 中找到。
我正在对一款Java应用程序进行分析,分配最多的对象中有一个名称为com.x.y.ClassName$5
。
NetBeans Profiler和YourKit使用相同的命名约定。我不知道如何在谷歌上搜索这个命名问题。
类名后面的$5
是什么意思?
编辑: 似乎$5是第五个匿名类声明。我在生成的类上使用了javap来查找第五个匿名类。参考资料可以在 How to match compiled class name to an enum member in Java? 中找到。
com.x.y.ClassName$5 表示 "在 com.x.y.ClassName 中的第五个匿名内部类"
以下是一些链接可以帮助你。同时请查看polygenelubricant的回答。
当你的类包含一个匿名内部类时,你会得到com.x.y.ClassName$5。
sample8.class
sample8$1.class
sample8$2.class
sample8$klass.class
sample8$klass$1.class
例子
public class sample8 {
private class klass{
void vodka() {
sample8 _s = new sample8() {
};
}
}
sample8() {
klass _k = new klass();
_k.vodka();
}
public static void main(String args[])
{
}
sample8 _s = new sample8() {
};
sample8 _s1 = new sample8() {
};
}