引用类型的对象数组如何存储在内存中?

时间:2018-08-12 14:35:09

标签: assembly x86 compiler-construction javali

据我了解, 当创建长度为10的原始int对象的新数组时,将为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;
}

0 个答案:

没有答案