gpt4 book ai didi

java - 在java的构造函数中创建的未分配对象的生命周期是多少?

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:00:29 26 4
gpt4 key购买 nike

我有一个类 (A),其构造函数定义如下所示。在构造函数中,我通过将监听器(接口(interface))实现传递给 B 创建了一个对象,如下所示。

public class A {

private String str;

public A() {

new B(new OnStringUpdatedListener() {

public void onStringUpdated(String str) {
A.this.str = str;
}

});
}
}

在上面的代码中,B 的对象没有分配给 A 的任何字段或构造函数中的变量。

B 的对象的生命周期是多少?它是在构造函数执行完成后立即被标记为垃圾收集,还是它仍然存在,因为它注册了一个修改 A 字段的监听器。

最佳答案

@Thomas 的评论很好。

OnStringUpdatedListener 修改什么并不重要。执行构造函数后,将无法通过任何引用访问 B。它将符合 GC 的条件并且可能被垃圾收集。

关于java - 在java的构造函数中创建的未分配对象的生命周期是多少?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55159465/

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