对于垃圾收集,如果我们在方法结束时使用后将对象设为 null 并清除收集,这是一个好主意



对于数据加载,我使用的是时髦的脚本。 我正在使用多线程概念。但是当我在一定间隔后开始数据加载时,数据加载停止并且 JVM 开始进行垃圾收集。我的问题是,在方法结束时使用后,将对象设置为空并在方法中清除集合会是个好主意吗?

其他最好的方法来了提前谢谢。

这取决于您使用哪种类型的变量来引用对象。

  • 如果变量是该方法的本地变量,并且没有对该对象的其他引用,则无法将变量设置为 null,因为它无论如何都会超出范围。
  • 如果变量是类的成员,并且您为其运行该方法的对象将持续一段时间,那么如果您已完成该对象,则为空变量将有所不同;因为该变量仍将在类中的代码范围内。 如果存在可以以某种方式访问该对象的引用,则不会对该对象进行垃圾回收。

它对垃圾回收没有影响。一旦您的方法结束并且不再存在对对象/集合的引用,GC 将能够清理它们。如果对象/集合变得不可访问,则由于您清空了本地保存最后一个引用已完成的引用或方法,则没有区别。

在多线程中,尝试将变量全局定义为尽可能在方法中和循环内或 if 条件中的局部变量,具体取决于它们的使用范围。

最新更新