import java.util.Arrays;
public class OneArrayMemory {
public static void main(String[] args) {
long startTime1 = System.currentTimeMillis(); // 获取开始时间
int num1 = 1024 * 1024 * 2;
int[] arr1 = new int[num1];
Arrays.fill(arr1, 1);
// for(int x : arr1){
// System.out.println(x);
// }
// 获得占用内存总数,并将单位转换成MB
long memory1 = Runtime.getRuntime().totalMemory() / 1024 / 1024;
System.out.println("用一维数组存储占用内存总量为:" + memory1);
long endTime1 = System.currentTimeMillis(); // 获取结束时间
System.out.println("程序运行时间: " + (endTime1 - startTime1) + "ms");
long startTime2 = System.currentTimeMillis(); // 获取开始时间
int num2 = 1024 * 1024;
int[][] arr2 = new int[num2][2];
for (int[] i : arr2) {
Arrays.fill(i, 1);
}
// for (int[] i : arr2) {
// for (int j : i) {
// System.out.print(j);
// }
// }
// 获得占用内存总数,并将单位转换成MB
long memory2 = Runtime.getRuntime().totalMemory() / 1024 / 1024;
System.out.println("用二维数组存储占用内存总量为:" + memory2);
long endTime2 = System.currentTimeMillis(); // 获取结束时间
System.out.println("程序运行时间: " + (endTime2 - startTime2) + "ms");
}
}
感觉和我的想法有出入啊……
用一维数组存储占用内存总量为:123
程序运行时间: 6ms
用二维数组存储占用内存总量为:123
程序运行时间: 72ms