如果我有:
int c[] = new int[10];
Run Code Online (Sandbox Code Playgroud)
和
int a[][] = new int[2][3];
Run Code Online (Sandbox Code Playgroud)
一般而言
一个n*m*..*j数组
如何考虑参考变量,我如何计算实际内存使用量?
小智 13
我知道我有点迟到了,但计算内存占用并不是非常困难.
让我们举个例子: int c[] = new int[N];
根据64位内存模型,int是4个字节,因此所有元素的大小都是4*N字节.除此之外,Java具有24字节的数组开销,并且实际的数组对象也有8个字节.这样总共有32 + 4*N字节.
对于二维数组: int a[][] = new int[N][M];
它基本上是相同的,只是第一个数组中的每个元素都是另一个大小为M的数组,因此我们不是4而是32 + 4*M,所以总大小为32 +(32 + 4*M)*N.
确实,D维的推广非常复杂,但你明白了.