Java 编程和垃圾收集

标签 java class object

这是我在讲座中提出的关于垃圾收集讨论的问题。我无法确定哪一行导致了垃圾收集。

我尝试使用编译器来运行编程,输出为

#1: [C001, C002]
#2: [C001, C002, C001]
#3: [C001, C002, C001]

我知道有一行会导致垃圾收集,但我无法弄清楚。同时,教授要求我们画一个图表来显示对象和数据、列表是如何运行的。

import java.util.ArrayList;

public class Main {

    public static void main(String[] args) {

        Customer a = new Customer("C001");
        Customer b = new Customer("C002");

        ArrayList<Customer> list1 = new ArrayList<Customer>();
        list1.add(a);
        list1.add(b);
        System.out.println("#1: " + list1.toString()); Icdddd

        ArrayList<Customer> list2 = new ArrayList<Customer>();
        list2 = list1;
        list2.add(a);
        System.out.println("#2: " + list1.toString()); 
        System.out.println("#3: " + list2.toString()); 
    }

}

最佳答案

没有任何行会导致垃圾收集,因为垃圾收集不是程序员可以触发的。然而,list2 = list1;之后ArrayListArrayList<Customer> list2 = new ArrayList<Customer>(); 创建的引用有资格进行垃圾收集。

关于Java 编程和垃圾收集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58587828/

相关文章:

java - AIX 的 vbjclientorb.jar 中没有 com.inprise.vbroker.IIOP.Task

java - 如何设置 Eclipse RCP 插件来使用 JOGL?

java - Sling - 获取资源的属性

javascript - 从对象中删除特定键

javascript - 如何为数组中的每个单击元素动态更改信息模式 innerHTML

java - 使用 Hibernate 将具有相同 ID 的结果集的行分配到 Java 列表中

class - 有没有一种方法可以仅使用 Konva.Rect 类属性在 Konva.Rect 类中定义文本?

c++:在另一个类的函数中返回对象

python - <类名>之间的区别。 python 类中的 <var name> 和 self.<var name>

javascript - 奇怪的是,window.document 没有返回理想情况下应该返回的正确对象。为什么?