【发布时间】:2016-02-18 20:56:59
【问题描述】:
在Java中,如何在声明后检查分配给数组的字节数? 例如:
int[] a = new int[10];
数组 'a' 被分配 4*10 字节,因为 int 的大小是 4 字节并且有 10 个整数元素。有没有一种非手动的方式来做到这一点?
【问题讨论】:
-
查看thread。
在Java中,如何在声明后检查分配给数组的字节数? 例如:
int[] a = new int[10];
数组 'a' 被分配 4*10 字节,因为 int 的大小是 4 字节并且有 10 个整数元素。有没有一种非手动的方式来做到这一点?
【问题讨论】:
在 Java 中,没有像 C 中的 sizeof 这样的运算符来获取数组元素的大小。所以至少没有直接的方法。
顺便说一句,声明期间没有分配内存,仅在初始化期间。
声明:
int[] a;
初始化:
a = new int[10];
【讨论】:
实际上int[10] 的大小是 56 字节或更多(取决于您的 JVM)。
但这一切都取决于您操作系统的 JVM 和内存架构。 java.lang.instrumentation.Instrumentation 提供了一种计算对象大小的方法,如 this answer 中所述。
【讨论】: