gpt4 book ai didi

Java - 当创建类关闭时对象引用是否会被销毁?

转载 作者:行者123 更新时间:2023-12-02 12:00:27 25 4
gpt4 key购买 nike

假设我有一个类,它加载一个文件,然后调用另一个方法对该文件执行某些操作。例如,计算文件中的单词数。

在 CountWords 类中,创建了许多对象/集合来获取单词数。该方法运行,找到单词数,然后将其返回给调用类。

我的问题是,当控制权返回到调用类时,CountWords 类中创建的所有对象/集合是否都会“销毁”,还是保留在内存中?如果是后者,我是否必须在退出类之前将每个对象设置为 null 以将它们标记为集合?

最佳答案

我们通常不会精确控制 Java 对象何时被销毁。它会在变得不可访问一段时间后被销毁 - 换句话说,当在任何范围内没有进一步引用它时。

如果您创建一个对象,并将对其的引用存储在另一个对象的字段中,则只要具有对该对象的引用的对象可访问,您创建的对象就继续可访问。

如果你有这样的代码

public void run() {
Foo a = new Foo();
System.out.println("This method is finished");
}

那么一旦 run 完成,您创建的 Foo 将无法访问,因为没有更多变量引用它。 Foo 将在一段时间后被销毁。当然,除非 Foo 的构造函数做了一些魔法,将自己注册到某个令人讨厌的 static 数据存储中。

因此,一般来说,您不需要将引用设置为 null 来销毁对象。从垃圾收集器的角度来看,让这些引用超出范围就和将它们设置为 null 一样好。

关于Java - 当创建类关闭时对象引用是否会被销毁?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47293404/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com