gpt4 book ai didi

Java 关闭/清理

转载 作者:行者123 更新时间:2023-11-29 03:35:47 25 4
gpt4 key购买 nike

我有一个包含一些大对象的类:

public class MyClass {

BigObject bo;

public MyClass() { ... }
}

我应该像下面那样做一个关闭方法吗:

public void close() {
bo = null;
}

我认为这有利于垃圾收集(?)我走对了吗?我应该如何清理此类?

最佳答案

I think this is good for garbage collection

不,它只会让代码更困惑。

什么将保存对 MyClass 实例的引用?如果您确实需要 MyClass 的实例保持 Activity 状态,而不是 BigObject,那么 - 只有这样 - 您是否应该费心将 bo 设置为无效的。但同时,你也应该考虑你的设计。通常,一个类的所有状态在其整个生命周期中对它都很重要。该规则也有异常(exception),但它们相对较少。

MyClass 的实例符合垃圾回收条件时,其 bo 变量的值将与 BigObject 的实例是否存在无关有资格进行垃圾回收,所以它是否被设置为 null 并不重要...但它确实对您最终的代码量产生了很大的影响不必自己尝试手动清理。

您应该清理流、 native 句柄等资源 - 但通常您可以让垃圾收集器处理内存。

关于Java 关闭/清理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15646501/

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