gpt4 book ai didi

java - 另一个内部类的内部子类——对根类有多少引用?

转载 作者:行者123 更新时间:2023-11-30 11:30:19 24 4
gpt4 key购买 nike

假设我有结构

class A {
class B {}
class C extends B {}
}

似乎 C 的实例应该有 2 个对根类 A 的引用:第一个是从 B 父类(super class)继承的,第二个是自己的隐式内部类引用。我的问题:JVM (HotSpot) 是否优化了这种情况并只保留一个对根类的引用?

最佳答案

我反编译了 A.class 并得到了这个结果,它显示了对 A 的两个引用,一个来自 B,一个来自 C。但这实际上意味着 C 实际上有两个引用 - 一个是它自己的,另一个是从 B 继承的。

class A {

class B {
final A this$0;
B() {
this$0 = A.this;
}
}

class C extends B {
final A this$0;
C() {
this$0 = A.this;
}
}
}

关于java - 另一个内部类的内部子类——对根类有多少引用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17839111/

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