我是否必须在 Java 中手动实施垃圾收集?

Do I have to implement garbage collection manually in Java?

我已经在 Java 中阅读了一些有关垃圾收集的内容,但我找不到 "best practice" 来处理代码中的垃圾收集。我应该在使用后将每个变量都设置为 null ,还是只使用默认垃圾收集器更高效、性能更好?或者在这种情况下我是否必须通过命令行参数配置垃圾收集器?

感谢您的建议!

不,JVM 为您代劳。这就是为什么它是一种具有自动内存管理的语言。如果你想,因为性能问题,你可以调用:

Runtime r = Runtime.getRuntime();
r.gc();

但不能保证垃圾收集器会删除未引用的对象。这更像是对 JVM 的建议。 只有当你知道自己在做什么的时候。风险自负。

您可以选择适合您需要的垃圾收集器实现。例如,如果您不想回收任何内存,出于测试目的,您可以通过添加 XX:+UseEpsilonGC 标志来选择 epsilon

垃圾收集器主要自己完成这项工作。你不需要任何东西。但是您甚至可以看到垃圾收集器清除 JVM 内存,如图所示

Automatic garbage collection is the process of looking at heap memory, identifying which objects are in use and which are not, and deleting the unused objects.

更多信息:Java Garbage Collection Basics