gpt4 book ai didi

Java 引用和垃圾收集器

转载 作者:行者123 更新时间:2023-11-30 07:03:51 24 4
gpt4 key购买 nike

我下面有两个课,我想知道两种作业之间的区别是什么

类:

 class ClassA {
public ArrayList<String> listA;
public ClassA() {}
}

class ClassB {
public ArrayList<String> listB;
public ClassB() {}
}

我想把 listB 数组的所有值都放到 listA 数组中,下面的用法有什么区别?第二次使用时,两个类之间是否存在任何引用,这可能是垃圾收集器删除对象的问题。那么 usage3 呢?

ClassA clsA= new ClassA();
ClassB clsB= new ClassB();

用法1

for (String s : clsB.listB) {
clsA.listA.add(s);
}

用法2

clsA.listA=clsB.listB;

用法3

clsA.listA=clsB.listB;
clsB.listB = null;

最佳答案

  • 用法 1:ListA 现在将具有来自 listB 的其他元素。

  • 用法 2:ListA 现在是 ListB,两个引用引用同一个对象(赋值语句)。如果没有原始 ListA 的当前引用,那么它将被垃圾收集。

  • 用法 3:ListA 现在是 ListB(像以前一样进行引用赋值),紧接着,ListB 被赋值给 null(指的是空指针,空指针)。如果原始 ListA 没有当前引用,那么它将被垃圾收集。

I want to put all my values of listB array to listA array, what is the differencies between below usage ?

用法 1 是您想要的。

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

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