Runtime rt = Runtime.getRuntime();
long totalM = rt.totalMemory();
long currentM;
int []n = new int[10000];
System.out.print("10000 ints used: ");
System.out.println(totalM - rt.freeMemory());
它不工作。我们不能用long来计算吗?
预先感谢,请给我一些建议
最佳答案
回答标题中隐含的问题:“排序操作中使用静态数组和java.util.ArrayList的内存使用情况”有什么区别。
在 Java 8 中:无。这是因为排序被委托(delegate)给 ArrayList
类,该类直接使用 Arrays.sort()
对支持数组进行排序。
在Java 7及以下版本中,列表被转换为数组,数组被排序,结果被放回到列表中。因此,数组的内存加倍,再加上排序操作本身需要的任何额外内存,这取决于 Java 的版本。
Java 8 中的 LinkedList
也会发生这种情况。
关于java - 比较排序操作中使用静态数组和 java.util.ArrayList 的内存使用情况,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32853261/