Java编译生成的class文件名为什么有$符号 |
您所在的位置:网站首页 › java编译生成类 › Java编译生成的class文件名为什么有$符号 |
编译java文件的时候会发现一个java文件可以生成的多个class文件,而且有的还含有“$”符号,这个符号代表的是内部类,举个例子: public class ClassA { private class ClassB { private void show() { System.out.println("哈哈哈"); } } private void display() { new ClassB().show(); }} 编译ClassA.java 生成了三个class文件 最后总结: 1、编译后产生的.class文件个数:有多少个类,产生多少个.class文件 2、.class文件命名规则: 2.1普通内部类 外部类名 + $ + 内部类名 [+ $ + 内部类名 + …]+ .class,类名之间使用符号隔开例如:ClassD隔开例如:ClassDClassDd$ClassDdd.class,这里ClassDdd是对底层的普通内部类,它的父类ClassDd,而ClassDd的父类也是最外层的外部类ClassD 2.2匿名内部类 外部类名 + $ + 数字 [+ $ + 数字 + …]+ .class,类名之间使用符号$隔开,数字根据在外部类中定义的顺序决定 例如:ClassE$1$1.class 3、同一个.java文件中定义的其他非public声明的类,都遵循以上2点规范 4、继承、或者接口实现,不影响编译产生的.class文件个数和命名规则 |
今日新闻 |
点击排行 |
|
推荐新闻 |
图片新闻 |
|
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭 |