一个int数组占用多少空间?或者一个 int 数组消耗多少空间(以字节为单位),看起来像这样:
int[] SampleArray=new int[]{1,2,3,4};
内存分配语言是特定的吗?
谢谢你们
由于您添加了很多语言标签,我想为 C# 编写。在 C# 中,这取决于操作系统。
对于 32 位,每个int
是 4 字节,4 字节也用于引用对象,这使得 4 * 4 + 4 = 20 字节
对于 64 位,每个int
是 4 字节,8 字节也用于引用对象,这使得 4 * 4 + 8 = 24 字节
摘自C# 5.0 in a Nutshell第 22 页;
对对象的每个引用都需要额外的 4 或 8 个字节,具体取决于 .NET 运行时是在 32 位还是 64 位平台上运行。
在 C++ 中,实际分配多少内存new int[4]{1, 2, 3, 4}
是实现定义的,但数组的大小是sizeof(int)*4
.
问题是:内存分配语言是特定的吗?是的,内存分配是特定于语言的..它因语言而异..对于 exp:sizeof(int)*4
在 java 中,int 大小为 4byte,因此内存消耗为:4*4=16bytes
它既取决于语言,也取决于操作系统。
你需要4个整数。通常一个整数是 2 或 4 个字节(在大多数系统上主要是 4 个字节),但要确保检查 sizeof(int)。
(还请记住,根据操作系统的不同,这些值的表示方式可能不同),例如 MSB 优先或 LSB 优先(或者在使用 4 个字节的情况下混合使用)。
在 Java 中,int[] 数组是一个对象,它在内存中由标头(x86 为 8 个字节)和 int 长度字段(4 个字节)表示,然后是整数数组(arrayLength * 4)。
approxSize = 8 + 4 + 4 * arraylength
在这里查看更多http://www.javamex.com/tutorials/memory/object_memory_usage.shtml