【发布时间】:2011-01-20 04:23:48
【问题描述】:
java 接口驻留在内存中的什么位置?它们是驻留在堆中还是堆栈中,或者可能是全局内存中?我认为它们在堆栈中,因为它们是在编译时创建的。我说的对吗?
【问题讨论】:
标签: java interface memory-management
java 接口驻留在内存中的什么位置?它们是驻留在堆中还是堆栈中,或者可能是全局内存中?我认为它们在堆栈中,因为它们是在编译时创建的。我说的对吗?
【问题讨论】:
标签: java interface memory-management
类定义——包括接口和抽象类——保存在 PermGen 空间中,这意味着它们永远不会被垃圾回收。 PermGen 是 iirc 堆的一部分。
【讨论】:
类定义(包括接口等)存储在堆上(通常在永久代中,因为它们的生命周期很长)。如果创建它们的 ClassLoader 被垃圾回收,那么它们也有资格被垃圾回收。
【讨论】:
在创建常规类实例的意义上,接口在技术上不是“实例化”的,但类信息存储在 java permgen 空间中。请参阅http://blogs.oracle.com/jonthecollector/entry/presenting_the_permanent_generation 了解有关永久生成的更多信息以及类实例和类信息之间的区别。
【讨论】: