【发布时间】:2015-06-15 05:01:34
【问题描述】:
JVM内存分为: 1.方法区 2.堆区 3. 堆栈 4.电脑注册 5. 原生栈
-
现在假设我有一个类,其属性为“int[] dealCodes”(int 基元数组)。根据内存管理,一旦交易代码被初始化,内存中就会有(total_elements * 4 字节)的连续内存分配。因此如果数组大小为 10,那么 JVM 内存中将分配 40 个字节。
我的问题是这 40 个字节将分配在哪个区域(堆或堆栈)?
我对数组的理解是:它就像任何其他对象一样,位于堆区域下,但不知道数组指向的原语。
还想了解当数组包含引用时的类似情况(例如,Employees 类型的数组)。我认为在这种情况下,一切都将在堆区。由于这些是引用,因此数组将为每个引用(32 位系统)保存 4 个字节,并且这些引用将指向不同大小的对象。 数组内存分配将根据参考大小而不是对象大小来计算。
请帮我弄清楚以上 2 点。
【问题讨论】:
-
数组是对象,所以它在堆上