java中x数据类型数组占用的实际大小(字节)?

java中x数据类型数组占用的实际大小(字节)?,java,arrays,memory,Java,Arrays,Memory,如何确定某个数据类型的数组的“字节大小” 是什么让我问这个问题的是一个来自 问题如下: 董事会接受的答案是(其中一种数据类型占用的空间*数组中的元素数量) 例如,一个int数组的10对象被称为取4*10=40字节 但我的问题是,数组是否必须以某种方式存储其长度和索引(增加其内存大小),或者我是否误解了这个问题 你的理解确实正确。官方的回答采用了一种关于数组存储方式的过于简单的观点 每个对象都有一个固定的成本。此外,阵列需要跟踪它们的大小以及可能的其他内容 答案还忽略了填充、对齐等问题。因此,没

如何确定某个数据类型的数组的“字节大小”

是什么让我问这个问题的是一个来自

问题如下:

董事会接受的答案是
(其中一种数据类型占用的空间*数组中的元素数量)

例如,一个
int
数组的
10
对象被称为取
4*10=40字节


但我的问题是,数组是否必须以某种方式存储其长度和索引(增加其内存大小),或者我是否误解了这个问题

你的理解确实正确。官方的回答采用了一种关于数组存储方式的过于简单的观点

每个对象都有一个固定的成本。此外,阵列需要跟踪它们的大小以及可能的其他内容


答案还忽略了填充、对齐等问题。

因此,没有可靠的方法来确定它?@AmithKK:您可以在运行时使用内存分析器(VisualVM、YourKit等)来确定这一点。答案当然是JVM特有的。@AMITKK:同样,这取决于JVM,取决于它是32位还是64位,等等。我没有看到任何官方公式。@AMITKK这些不是公式,它们是分析工具,很像eclipse。我知道@Batty。考试期间不能使用分析工具;)这只是一个测试检查器将理解的答案。你的理解是正确的。但你们敢在考试中写它吗。