java - 方法运行完成后是否收集局部变量

标签 java variables garbage-collection

例如

public void doSomething() {
   Dog smallDog = new Dog();
   smallDog.bark();
}

执行此方法后是否会收集狗对象?

最佳答案

当方法返回时,它可以变得有资格被收集。垃圾收集实际发生的时间是 future 某个未知的时间。

如果没有看到 bark() 的实现,就无法确定。

如果这是你的吠叫:

public void bark() {
   BarkListeners.callBack(this);
}

public class BarkListeners {
  private static final List<Dog> barkers = new ArrayList<Dog>();

  public static void callBack(Dog dog) {
    barkers.add(dog);
  }
}

那么不,它不会被垃圾收集!

关于java - 方法运行完成后是否收集局部变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11548560/

相关文章:

java - Coldfusion 服务器运行良好,但一个站点仅在两分钟左右就出现故障

java - 检查一个 map 是否包含另一个 map 的所有内容

java - 在selenium网格中分配多少个线程

javascript - 如何从 .php 脚本增加 javascript 变量

java - 如何添加安全防护来释放本应由客户端代码显式释放的资源

android - Android 上的 WeakReference 有什么问题吗?

Mustache 生成的 Restful API 中的 Java 函数参数

c++ - 引用变量在 C++ 中不返回值

javascript - 正确重置javascript中的全局变量?

java - JVM 堆 - 为什么 S0/S1 的大小会随着时间的推移而减小?