按照理论上讲,二维数组的内存消耗应该比一维数组要大,但是根据实际程序运行情况来看,两者是一样的
代码:
int num1=1024*1024*2;
int[] arr1=new int[num1];
for(int i=0;i<arr1.length;i++)
{
arr1[i]=1;
}
//获取内存消耗
long memory1=Runtime.getRuntime().totalMemory()/1024/1024;
System.out.println(memory1);
int num2=1024*1024;
int[][] arr2=new int[num2][2];
for(int i=0;i<arr2.length;i++)
{
arr2[i][0]=1;
arr2[i][1]=1;
}
//获取内存使用
long memory2=Runtime.getRuntime().totalMemory()/1024/1024;
System.out.println(memory2);
考虑可能情况:
编译器/JDK版本升级之后对于处理逻辑产生变化,我现在用的Java 9