Java接口......动态或静态内存?

时间:2010-02-23 17:19:31

标签: java interface memory-management

java接口在内存中的位置是什么?它们是驻留在堆还是堆栈中,还是全局内存?我认为它们是在堆栈中,因为它们是在编译时创建的。我是对的吗?

3 个答案:

答案 0 :(得分:5)

类定义 - 包括接口和抽象类 - 保存在PermGen空间中,这意味着它们永远不会被垃圾回收。 PermGen是iirc的一部分。

答案 1 :(得分:1)

在创建常规类实例的意义上,接口在技术上不是“实例化”,而是将类信息存储在java permgen空间中。有关permgen的更多信息以及类实例和类信息之间的区别,请参阅http://blogs.oracle.com/jonthecollector/entry/presenting_the_permanent_generation

答案 2 :(得分:0)

类定义(包括接口等)存储在堆上(通常在Permanent generation中,因为它们的生命周期很长)。如果创建它们的ClassLoader被垃圾收集,那么它们也有资格进行垃圾收集。