调用`System.gc()`是一种在Java应用程序中管理内存的好方法吗?

new*_*ect 5 java garbage-collection

我有一个想要调用system.gc()的java应用程序.释放记忆是一种合理的方法吗?或任何其他建议?万分感激!

Bal*_*usC 12

只需停止引用变量即可.你不需要System#gc()自己调用.如果JVM上的边缘OutOfMemoryError,这肯定运行GC.

如果停止引用变量不是一个选项,因为你真的需要它们,那么你需要分析你的应用程序来修复/清除任何内存泄漏和/或只是在启动时给JVM更多的内存.

  • 另请注意,调用System.gc()并不能保证垃圾收集器能够运行.这只是一个请求,可能会或可能不会被尊重. (2认同)
  • 由于调用`gc()`是一种可怕的做法,实际上有一个系统属性可以设置为忽略调用. (2认同)

Ber*_*ard 5

在Java中,没有必要显式调用垃圾收集.它由虚拟机自动完成.