![]() |
1
7
回答@jon skeet的反问:
假设(假设)Java类文件格式通过嵌套在最外层类的类文件中表示嵌套/内部类。条形图的二进制名称是“
我认为内部/嵌套类具有独立类文件的真正原因是历史的。IIRC,Java 1不支持嵌套或内部类,因此相应的类文件格式不需要处理它们。当Java 1.1被创建(支持内部/嵌套类)时,Sun希望类文件格式与Java 1编译器生成的类文件兼容。因此,他们选择使用保留的
第二个可能的原因是与假设的嵌入式格式相比,平面格式简化了类加载。
最后,他们没有(并且仍然没有)令人信服的理由不使用平面文件格式。当一些程序员想使用
|
![]() |
2
12
JVM需要能够找到给定类的代码,并给出其名称。如果源文件名和代码文件名之间可能没有关系,并且您希望代码文件名基于 来源 文件名,您希望它如何加载代码? 例如:假设我要编译包含类栏的foo.java。 然后另一个类引用了bar,所以JVM需要它的代码…你建议它如何找到文件? 注意,在.NET中有一个独立的部署单元称为 装配 -对类型的引用也包括程序集名称,但这与您所建议的略有不同。 |
![]() |
3
2
这是一个关于编译单元的设计决策,由开发人员做出。 编译类通常组合在一个JAR文件中。 从中提取 Java Language Spec 7.3编制单位 compilationUnit是以下语法的目标符号(_§2.1) Java程序。 在不同的编译单元中声明的类型可以循环地相互依赖。 Java编译器必须安排同时编译所有此类类型。 |
|
user29759326 · 如何返回递归函数中的最后一个值? 6 月前 |
|
malife89 · 将java中的字符串读取为正确的日期格式 7 月前 |
![]() |
Tim · 在java中,有没有更快的方法将字节数组写入文件? 7 月前 |
![]() |
rudraraj · java中未声明最终变量 7 月前 |
![]() |
Bala Ji · 以下BFS的实施效率如何? 7 月前 |