class文件名中的$的含義如下:
$后面的類是$前面的類的內部類
內部類有以下兩種情況:
1.普通的組合類形式,即在一個類內部定義一個普通的類
public class Outer {
class Inner {
public Inner {
}
}
}
javac Outer.java后會出現兩個class文件:
Outer.class
Outer$Inner.class
2.在一個類內部定義一個匿名類(一般是接口interface)
//定義一個接口
public Interface Test {
public void test();
}
//進入正題
public class Outer {
public Test test1 = new Test(){
public void test() {Sysem.out.println("test1")}
}
}
此時會產生以下兩個類:
Outer.class
Outer$1.class
其中$1代表的就是Outer類里面的new Test(){}這個匿名類
