gpt4 book ai didi

java - 对象引用和克隆如何在 java 中工作

转载 作者:行者123 更新时间:2023-12-04 06:59:26 25 4
gpt4 key购买 nike

下面是代码

ArrayList arList = someMethod();// returning ArrayList with customDO objects

现在在不同类(class)的某个地方,我正在从这个 arList 获取数据
CustomDo custDO= (CustomDO)arList.get(0);

只要 custDO 还活着, arList 还会活着吗?如果是,将在下面的代码帮助
CustomDO custDO = ((CustomDO)arList.get(0)).cloneMe();
// where cloneMe has defintion as return ((CustomDO)super.clone());
// CustomDo implements Cloneable

有没有更好的方法来保留 arList 的第一个元素的副本并丢弃列表,以便垃圾收集器可以收集它?

最佳答案

Is there a better to keep a copy of only the first element of arList and discard the list so that it can be collected by garbage collector ?



您不必复制列表元素。只要您对它有另一个引用,它就不会被垃圾收集,即使您从中获取它的列表是。一旦您删除对它的所有引用,该列表就会被垃圾收集。

Java 中不需要克隆任何东西来确保对象不会消失。在 Java 中,对对象的引用总是有效的。实时引用的数据不会无效。

如果您担心引用同一对象的其他人可能会以给您带来麻烦的方式更改其内容(在其上调用一些 setter)(或者您希望拥有一个私有(private)副本),您只想制作一个副本(克隆)在不影响他人的情况下更改它)。

关于java - 对象引用和克隆如何在 java 中工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2107231/

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