我敢肯定我在这里犯了某种极其愚蠢的错误。我有这个代码:
private static String generateRAM()
{
final long RAM_TOTAL = Runtime.getRuntime().totalMemory();
final long RAM_FREE = Runtime.getRuntime().freeMemory();
final long RAM_USED = RAM_TOTAL - RAM_FREE;
final long RAM_TOTAL_MB = RAM_TOTAL / 8 / 1024;
final long RAM_FREE_MB = RAM_FREE / 8 / 1024;
final long RAM_USED_MB = RAM_USED / 8 / 1024;
final double RAM_USED_PERCENTAGE = (RAM_USED / RAM_TOTAL) * 100;
return RAM_TOTAL_MB + "MB TOTAL / " + RAM_FREE_MB + "MB FREE / " + RAM_USED_MB + "MB USED (" + RAM_USED_PERCENTAGE + "%)";
}
这将返回:
15440MB TOTAL / 11809MB FREE / 3630MB USED (0.0%)
这个百分比显然是不正确的。这是怎么发生的?据我所知,我所有的数学都是正确的。如果我将给定的数字打入计算器并自己找到百分比,我会得到 23.5,这是我的预期结果。
我确定我刚刚犯了一个可怕的错误,我会踢自己,有人可以启发我吗?