为什么java编译器为单个java文件生成多个.class文件?

时间:2013-03-29 15:47:38

标签: java class compiler-construction

为什么java编译器会为单个java文件生成多个.class文件?

我编写了一些java代码Deadlock.java,在编译它时会生成多个类 命名为死锁$ someNumber.class。

为什么会这样。??

它的意义是什么?

3 个答案:

答案 0 :(得分:2)

如果在同一个文件中有多个类(其中一个是必需的,并且与文件同名),请在Person.java文件中说明以下内容

    public class Person{
}
class Classroom{
}

编译器将为Person.java文件中的每个类创建一个类

答案 1 :(得分:0)

这些是匿名课程。您的代码包含new SomeInterface(){}和/或new SomeClass(){}

答案 2 :(得分:0)

我相信当你使用匿名内部类时通常会这样做。这些类中的每一个都将获得一个类文件,但是当您为它们声明没有名称时,它会得到一个数字。因此,您创建的任何未命名的类声明(可能是Runnable或Listeners等)可能正在创建它们。