java - Java 中没有变量引用的新实例会被垃圾收集吗?

标签 java model-view-controller garbage-collection

关于以下 Java 类:

public class GuiController {
    private GuiView view;

    public GuiController(GuiView view){
        this.view =  view;
    }

    //responds to user inputs to GuiView
}

public class GuiView {
    //interacts with user
}

//lives in the Servlet context
public class SomeLongLifeClass {
    private GuiView view;

    public SomeLongLifeClass(){
        this.view = new GuiView();
        new GuiController(view);
    }
}

由于没有外部引用,GuiController 最终会被垃圾回收吗?它不应该是因为它主动与引用的 GuiView 交互,我只是不明白为什么。

在第二个问题中,如果不是这样,还应该如何实现 View / Controller 模式?

最佳答案

事实上,是的,您的 GuiController 实例符合 GC 条件。在更实际的代码中,您可能会将 Controller 注册为 GuiView 组件的监听器(直接或间接),因此 Controller 将从 View 中引用, View 本身由 GUI 线程引用。

关于java - Java 中没有变量引用的新实例会被垃圾收集吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22351864/

相关文章:

c# - 将引用类型作为属性的实时结构在哪里

java - 在个人资料中编辑显示名称时如何存储重复共享首选项

java - JUnit 返回 int 值

java - 弃用线程的 stop()、destroy()、resume() 方法背后的原因

php - 无法在 Codeigniter 中加载请求的文件 : header. php

model-view-controller - Zend Framework 2 : Modify details of layout. Controller 中的 pthml

java - 软输入键盘没有隐藏在 edittext 上

model-view-controller - 在域内容更改时更新Grails VIEW

java - 为什么当我增加新时代内存时,Minor GC 时间会增加

.net - 取消对 "encourage".NET垃圾回收的引用有什么好处?