调用System.gc()或Runtime.getRuntime().gc()是个坏主意,原因很简单: 不能确切知道什么时候JVM会做什么,因为具体行为与提供商,版本和配置相关:
System.gc()
Runtime.getRuntime().gc()
一个依赖这种不可预期方法调用的应用也是无法预期,并会因此崩溃。
执行垃圾回收的任务应该留给JVM。