如何显式执行垃圾回收

Sah*_* Mj 9 java android garbage-collection

通过内置的垃圾收集,Java允许开发人员创建新对象,而无需明确担心内存分配和释放,因为垃圾收集器会自动回收内存以供重用.

AFAIK垃圾收集器通常在您的应用程序内存不足时运行.它包含一个图形,表示对象和孤立对象之间的链接可以被释放.

虽然我们有System.gc(),但如果您System.gc()在代码中编写,Java VM可能会或可能不会在运行时决定在该点进行垃圾收集,如本文中的System.gc()解释

所以我对java的垃圾收集过程有些怀疑.

  • 我想知道free()在C语言中是否存在这样的方法,我们可以在明确想要释放new运算符分配的内存部分时调用.

  • 也不会new因为这样做执行相同的操作malloc()calloc()

  • 是否有任何候补委员delete(),free(),malloc(),calloc()sizeof()在Java方法.

And*_*res 7

不,没有.Java不是c,你不应该明确地管理内存.

  • 你能否根据这个问题提供一些解释. (4认同)
  • 虽然你提供了一个小但非常好的答案,但这件事我已经知道了.这就是为什么我发布这个问题以了解它是如何被管理的,因为它们可能是一些内存至关重要的应用程序.但不管怎样,谢谢 (2认同)

Sur*_*tta 6

AFAIK垃圾收集器通常在您的应用程序内存不足时运行.

对此没有什么不同意见.不.它以异步方式运行并收集引用的内存位置.

我想知道在C语言中是否有像free()这样的java中的这种方法,当我们明确想要释放由新运算符分配的内存部分时,我们可以调用它.

System.gc()然后再次是你的电话,但不是100%确定内存立即清除.

new还执行与malloc()或calloc()相同的操作吗?

如果你的意思是分配内存,那么该对象是

java中的delete(),free(),malloc(),calloc()和sizeof()方法是否有替代方法?

AFAIK没有直接的功能.

最重要的是,您不必担心这些事情,现代JVM是处理这些事情的聪明人.

这是一个有趣的线程,在SO上找到,当GC决定运行时.希望有所帮助.

  • @CPUTerminator`finalize`不释放内存.它可以在释放内存之前执行对象需要执行的任何操作. (2认同)