java中存储相同数据量的一维数组和二维数组所占内存是否相同?

测试代码:packagecom.lyy.java;publicclassOneArrayMemory{publicstaticvoidmain(String[]args)... 测试代码:
package com.lyy.java;

public class OneArrayMemory {

public static void main(String[] args) {

int num = 1024 * 1024 * 2;//数组中元素的个数
int[] arr = new int[num];

for(int i=0;i<arr.length;i++){
//为数组赋值
arr[i] = i;
}

//获得占用内存总数,并将单位转化为M
long memory = Runtime.getRuntime().totalMemory() / 1024 / 1024;
System.out.println("占用内存总量为:" + memory);

}

}

package com.lyy.java;

public class TwoArrayMemory {

public static void main(String[] args) {
// TODO Auto-generated method stub
int num = 1024 * 1024;
int[][] arr = new int[num][2];

for(int i=0;i<arr.length;i++){
arr[i][0] = i;
arr[i][1] = i;
}

//获得占用内存的总数,并将单位转化为M、
long memory = Runtime.getRuntime().totalMemory() / 1024 / 1024;
System.out.println("占用内存总量为:" + memory);

}

}
eclipse运行显示两个结果都是60,但是书上面写的是不一样,一维数组的是15 二维数组的是30,表示对此问题的答案怀疑,希望专业人士可以帮忙回答一下这个问题!谢谢啦
展开
 我来答
百度网友9c743b7
推荐于2017-11-27 · TA获得超过925个赞
知道小有建树答主
回答量:360
采纳率:100%
帮助的人:315万
展开全部
我分别运行了下 一个15 一个29 但是如果用one的调用two的main就是 15 30 像这样
long memory = Runtime.getRuntime().totalMemory() / 1024 / 1024;
System.out.println("占用内存总量为:" + memory);
TwoArrayMemory.main(new String[0]);
请问你的两个60是这么运行的,我觉得不管是什么都是对的,运行条件不同,内存占用也可能就不同
追问
我也是每个都单独运行了,显示的结果是60 60 当时懵了 难道是我环境问题?
帐号已注销
2018-05-27
知道答主
回答量:1
采纳率:0%
帮助的人:870
展开全部
遇到同样的问题,求解答?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式