接口的默认方法存储在内存中的什么地方?

我浏览了许多帖子,但似乎都回答了接口的静态方法存储在哪里。但是,接口可以具有抽象、静态和默认方法。我知道静态和抽象方法。但是,我无法在内存中找到与默认方法存储相关的任何内容。

我可能错了,但我认为默认方法将存储在静态堆空间中,就像实例方法与类一起存储一样。但是,除此之外,考虑到实现类不会覆盖接口中默认方法的实现并且没有菱形问题,如果默认方法也被分配给堆栈帧,我也很困惑。

我参考了以下链接:

方法存储在内存中的什么位置?

Java中的静态方法和静态变量存储在哪里?

回答

就 JVM 内存中的存储而言,默认方法没有什么特别之处。与其他类方法一样,它们是方法区的一部分。

考虑到实现类不会覆盖接口中默认方法的实现并且不存在菱形问题,我很困惑是否在调用默认方法时也将默认方法分配给堆栈帧。

该堆栈帧时方法被调用时,再次无论那种方法(静态,默认等)的分配。不要将它们在运行时调用期间的使用与方法代码(和其他类元数据)的存储位置混淆。


以上是接口的默认方法存储在内存中的什么地方?的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>