gpt4 book ai didi

java - 外部类的对象是否必须在内存中只要本地内部类的对象(局部于方法)在内存中?

转载 作者:行者123 更新时间:2023-11-30 08:15:33 25 4
gpt4 key购买 nike

因为局部内部类可以引用外部类的成员变量。如果局部内部类对象要在方法外使用(可能在类外)。外部类对象的内存不能被标记为垃圾。本地内部类对象如何管理内存?

`

package inner;

interface A {
int x = 123;

public void print();
}

public class B {
static A lict;
static int z = 890;

public static void main(String[] args) {
final int y = 90;
class C implements A {
public void print() {
System.out.println("X = " + x + " Y = " + y + " Z = " + z);
}
}

lict = new C();
B lic = new B();
lic.printInnerClass();
}

public A printInnerClass() {
lict.print();
return lict;
}
}

class D {
A a;

public void method() {
B b = new B();
a = b.printInnerClass();
}
}

`

最佳答案

所有内部类,无论是否匿名,都将引用外部类并防止它被垃圾回收,除非内部类声明为静态。

这对于匿名内部类来说是不可能的,所以是的,在方法“Anonymous”中定义的任何类都将引用外部类。

关于java - 外部类的对象是否必须在内存中只要本地内部类的对象(局部于方法)在内存中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28858255/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com