在java中声明之后分配给数组的字节数

时间:2016-02-18 20:56:59

标签: java arrays

在Java中,如何在它声明之后分配给数组的检查字节数? 例如:

int[] a = new int[10]; 

阵列' a'因为int的大小是4个字节并且有10个整数元素,所以分配4 * 10个字节。有非手动方式吗?

2 个答案:

答案 0 :(得分:1)

在Java中,C中没有类似sizeof的运算符来获取数组元素的大小。所以至少没有直截了当的方式。

顺便说一句,在声明期间,仅在初始化期间没有分配内存。

声明:

int[] a;

初​​始化:

a = new int[10]; 

答案 1 :(得分:1)

实际上int[10]的大小是56字节或更多(取决于您的JVM)。

  • 10 * 4 = 10个整数的40个字节
  • 4个字节来存储数组长度
  • Java对象的8个字节
  • 4个字节,使对象的大小为8(对齐)的倍数。

但这完全取决于操作系统的JVM和内存架构。 java.lang.instrumentation.Instrumentation提供了一种计算对象大小的方法,如this answer中所述。