答案 0 :(得分:7)
这不会留下很多内存,而是会产生大量垃圾。
while (!Thread.interrupted()) {
bigInteger.mod(n); // create a new objects each time.
}
这个循环尽可能快地创建垃圾(也有一点CPU工作)因此你应该期望看到内存使用非常活跃。
如果我的bigInteger只有64位长度,为什么mod操作会占用大量内存?
这使得内存使用率更高,因为执行计算的实际CPU花费相对较少。如果你有一个更大的数字,与创建对象相比,它将花费更多的时间来使用CPU。因为与使用的CPU相比,它花费更多的时间来创建垃圾。
BTW我建议您使用Java 6中的VisualVM和Java 7中的Java Mission Control,而不是使用jconsole。
答案 1 :(得分:3)