数组对象使用Java内存

时间:2015-04-15 19:19:43

标签: java stack heap

有多少堆空间需要数组对象?我的意思是不是数组引用。 例如,有多少堆空间将占用此数组

Integer[] array = new Integer[5];

或者您可能知道如何测试我的应用程序的内存使用情况?任何建议和意见将不胜感激)

提前致谢!

2 个答案:

答案 0 :(得分:0)

这取决于数组是否是基本类型的对象类型。如果是 int [] = new int [5]它将是内存大小的5倍 - 5x4 = 20个字节。

如果它是Object而不是像你的情况那样原始(整数)那么使用的内存是对象的数量乘以参考内存大小(指针大小) - 32位或64位,具体取决于JVM。

答案 1 :(得分:-1)

我相信你的意思是:

Integer[] array = new Integer[5];

使用时整数是4个字节...所以4 * 5 = 20个字节。但是除此之外还有更多的东西......数组中的某些开销就是这样,而且你使用的是Integer类,而不仅仅是:

int[] array = new int[5];

我建议谷歌尝试更多解释或回答: Calculating Java Array Memory Usuage