我想知道嵌套类如何在for循环中工作:
这是代码:
class Outer {
int outer_x = 100;
void test() {
for(int i=0; i<10; i++) {
class Inner {
void display() {
System.out.println("display: outer_x = " + outer_x);
}
}
Inner inner = new Inner();
inner.display();
}
}
}
class InnerClassDemo {
public static void main(String args[]) {
Outer outer = new Outer();
outer.test();
}
}
答案 0 :(得分:9)
在方法中有一个类定义只是语法:它仍然是一个完全正常的类定义。
对于您创建的Inner
个对象(new Inner()
),这意味着:
对于班级本身,这意味着:
test
答案 1 :(得分:0)
例如,如果您通过构造函数将外部类实例(this
)传递给内部类并分配给Inner类的字段,那么Inner类对象将保留在内存中只要外部类实例在某处使用。
答案 2 :(得分:-1)
GC完全依赖于JVM 。 如果内部存储器很低,它将执行,并且GC有机会。