assembly - 引用类型的对象数组如何存储在内存中?
问题描述
据我了解,当创建一个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;
}
解决方案
推荐阅读
- c++ - QIntValidator 在有效输入中返回中间值
- kubernetes-ingress - 如何在斜杠内和不带斜杠的情况下重写目标上下文路径?
- f# - 此表达式应具有“obj”类型,但此处具有“字符串”类型
- c# - 在快速增长的 SQL Server 数据库表中搜索最新数据
- node.js - 使用 Firebase 身份验证验证 ID 令牌
- css - Angular Material Mat-Select Width based on Longest Option Width
- python-3.x - 阻止父级(subprocess.Process)在 Windows 中向子级(multiprocessing.Process)传播信号
- javascript - 在 componentDidUpdate 或 handleSubmit 上使用 Formik setFieldValue(错误:不是函数)
- android - 将语音中的文本与文本视图中的文本进行比较
- javascript - Mongodb 上的小 NLP 请求