【发布时间】:2018-05-15 08:06:02
【问题描述】:
我已经编译了以下代码(为简洁起见,省略了方法和变量):
// Outer.java
public class Outer
{
private class Inner
{
}
void someMethod()
{
Inner inObj = this.new Inner();
}
public static void main(String s[])
{
Outer outerObj = new Outer();
}
}
当我列出创建的类时,它显示如下:
Outer$1.class
Outer$Inner.class
Outer.class
Outer 和 Outer$Inner 看起来合乎逻辑。 Outer$1 类的目的是什么?这些在时间尺度上的创建顺序是什么?
【问题讨论】:
-
“这些在时间尺度上的创建顺序是什么?”为什么您认为了解这一点很重要?
-
为什么不呢?就是了解javac的创建类的机制。
-
Order 似乎是
1. Outer.class 2. Outer$Inner.class 3. Outer$1.class,在 Windows 中按date modified列排序时。 -
类文件的创建顺序何时重要?在执行时是否以及何时创建类的实例是相关的,但何时创建类文件似乎有些无关紧要。
-
Oak's answer 给骗子解释了一下,有点。
标签: java inner-classes outer-classes