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

标签 java multithreading groovy garbage-collection jvm

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

其他最佳方法也即将到来 提前致谢。

最佳答案

这取决于您使用什么类型的变量来引用该对象。

  • 如果该变量是该方法的本地变量,并且没有对该对象的其他引用,那么将变量设置为 null 没有任何帮助,因为它无论如何都会超出范围。
  • 如果变量是类的成员,并且您正在运行该方法的对象将保留一段时间,那么在完成后将变量清空将会产生影响与那个物体;因为该变量仍然在类中的代码范围内。如果存在可以通过某种方式访问​​的引用,则该对象不会被垃圾回收。

关于java - 对于垃圾收集来说,如果我们将对象设为 null 并在方法结束时使用后清除收集,这是个好主意,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27032286/

相关文章:

java - 添加 Spring Security 后,我的 spring 应用程序停止运行

python - 与其他代码并行执行 python Web 服务器

multithreading - 可重用屏障算法

image - 更新Grails数据库中的图像

具有多个单词的 Groovy 属性/配置

java - 检索 JSON 数据时,String cannot be converted to int 错误

java - 如何从 xml 和 java 中的根元素中删除 xmlns 属性

java - 如何序列化一个包含 ObservableList 的对象?

multithreading - IIS 工作线程问题

xml - 如何访问父 XML 元素