负空闲记忆

ala*_*a27 -1 java memory sorting

有时,此代码会打印一个负数,例如-64.该值以KB为单位.

可能会发生什么?


long memoriaInicial = Runtime.getRuntime().freeMemory() / 1024;
sort(vector);
System.Out.Println(memoriaInicial - Runtime.getRuntime().freeMemory()/1024);

Ry-*_*Ry- 6

这意味着在您排序之后,垃圾收集器可能释放了更多内存,并且您拥有的内容超过了您的开始.

  • 好吧,我对Java知之甚少,但它在很多方面与.NET非常相似,在.NET中,垃圾收集器可以在任意时间运行.我认为我对Java有足够的了解,认为你的奇怪结果是垃圾收集的结果. (3认同)