Java接口和内存分配

时间:2012-12-07 14:51:19

标签: java memory-management interface object-reference

考虑:

public SomeClass implements SomeInterface{...}

SomeClass obj = new SomeClass();

SomeInterface x = obj;

我试图将第3行与我对内存管理的基本理解联系起来。 我知道" obj"所代表的内存位置。只包含一个指向SomeClass的内存位置的指针。假设我使用的是64位JVM,那么最多可以为#34; obj"分配64位。指针。当JRE实现x时,在内存中创建了什么?它只是一个指向SomeClass的64位指针吗?

3 个答案:

答案 0 :(得分:3)

每个对象引用占用相同数量的内存,无论您如何声明它。

所以xobj是两个令人不快的引用,恰好指向同一个东西。

答案 1 :(得分:1)

在简单的句子中,引用在Java中使用相同的内存但是声明了。

Stack and Heap for Memory Allocation这有助于您详细了解它是如何

enter image description here 的工作原理。

答案 2 :(得分:0)

没有实际的内存开销,SomeInterface声明此时只是一个语言结构,键入x以供编译器稍后检查。