考虑:
public SomeClass implements SomeInterface{...}
SomeClass obj = new SomeClass();
SomeInterface x = obj;
我试图将第 3 行与我对内存管理的基本理解联系起来。 我知道“obj”表示的内存位置只包含一个指向 SomeClass 内存位置的指针。假设我使用的是 64 位 JVM,则最多为“obj”指针分配 64 位。当 JRE 实现 x 时在内存中创建了什么?它只是指向 SomeClass 的 64 位指针吗?
最佳答案
无论您如何声明,每个对象引用都占用相同数量的内存。
所以 x
和 obj
是两个不同的引用,它们恰好指向同一事物。
关于Java 接口(interface)和内存分配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13765458/