class文件名中的$的含义如下:
$后面的类是$前面的类的内部类
内部类有以下两种情况:
1.普通的组合类形式,即在一个类内部定义一个普通的类
1 2 3 4 5 6 7 8 9 10 |
|
javac Outer.java后会出现两个class文件:
Outer.class
Outer$Inner.class
2.在一个类内部定义一个匿名类(一般是接口interface)
1 2 3 4 5 6 7 8 9 10 11 12 13 |
|
此时会产生以下两个类:
Outer.class
Outer$1.class
其中$1代表的就是Outer类里面的new Test(){}这个匿名类