首页 > 解决方案 > 引用类型的对象数组如何存储在内存中?

问题描述

据我了解,当创建一个int长度为 10 的新原始对象数组时,会为10*4 = 40字节保留一个内存区域。

现在我的问题是,在创建引用类型的对象数组时,例如来自类 A 的对象(如下所述),数组中存储了什么?是对象本身,带有指向 vtable 和所有字段的指针,还是数组仅包含指向其他对象的指针?

接下来是另一个问题,我可以将 A 类型的对象存储在 B 类型的对象数组中,反之亦然?

class A {
   int a;
   int b;
   int foo(int x){
      return x*x;
   }
}
class B extends A {
   int c;
}

标签: assemblyx86compiler-constructionjavali

解决方案


推荐阅读