【发布时间】:2015-12-10 12:23:22
【问题描述】:
尝试使用 classmexer.jar 参考 Java memory usage 来分析 Java 数组(原始数据类型与对象)中的内存使用情况。
当我尝试以下代码时,我根本无法理解输出 (我已经给出了 cmets 中每个打印语句的输出)
Integer[] intObjArray = new Integer[10];
System.out.println(MemoryUtil.memoryUsageOf(intObjArray)); // 56
System.out.println(MemoryUtil.deepMemoryUsageOf(intObjArray)); // 56
for (int j =0; j< intObjArray.length ; j++) {
intObjArray[j] = new Integer(j);
}
System.out.println(MemoryUtil.memoryUsageOf(intObjArray)); //56
System.out.println(MemoryUtil.deepMemoryUsageOf(intObjArray)); //256
int[] intArray = new int[10];
System.out.println(MemoryUtil.memoryUsageOf(intArray)); //56
System.out.println(MemoryUtil.deepMemoryUsageOf(intArray)); //56
for (int j =0; j< intArray.length ; j++) {
intArray[j] = 10;
}
System.out.println(MemoryUtil.memoryUsageOf(intArray)); //56
System.out.println(MemoryUtil.deepMemoryUsageOf(intArray)); //56
【问题讨论】:
标签: java memory classmexer