考虑:
public SomeClass implements SomeInterface{...}
SomeClass obj = new SomeClass();
SomeInterface x = obj;
我试图将第3行与我对内存管理的基本理解联系起来。 我知道" obj"所代表的内存位置。只包含一个指向SomeClass的内存位置的指针。假设我使用的是64位JVM,那么最多可以为#34; obj"分配64位。指针。当JRE实现x时,在内存中创建了什么?它只是一个指向SomeClass的64位指针吗?
答案 0 :(得分:3)
每个对象引用占用相同数量的内存,无论您如何声明它。
所以x
和obj
是两个令人不快的引用,恰好指向同一个东西。
答案 1 :(得分:1)
答案 2 :(得分:0)
没有实际的内存开销,SomeInterface
声明此时只是一个语言结构,键入x
以供编译器稍后检查。