gpt4 book ai didi

java - 如果仍然引用某个对象的属性之一,该对象是否保留在内存中?

转载 作者:搜寻专家 更新时间:2023-11-01 02:35:56 24 4
gpt4 key购买 nike

<分区>

假设有一个巨大的对象,它包含大量其他巨大的对象作为其属性,但一个属性是一个非常小的对象。

class HugeObject  
{
private HugeObject1 x1;
private HugeObject2 x2;
:
:
private HugeObject1000 x1000;
private SmallObject1 s1;

public SmallObject1 getSmallObject()
{
return s1;
}
}

以下代码片段将基于小对象 (SmallObject1) 创建一个新对象。 runThis() 例程中的 HugeObject 超出范围,但返回了 SmallObject1 属性。

public class Test 
{
public static void main(String[] args)
{
SmallOjbect1 so = runThis();
//Application continues to run here for a long time.

}

public SmallObject1 runThis()
{
HugeObject ho = new HugeObject();
:
//Do some calculations, call other procedures....

return ho.getSmallObject();
}
}

这种情况下,是只有SmallObject1保存在内存中还是HugeObject也保存在内存中,因为SmallObject1是它的属性。

尽管 HugeObject 超出范围,但我不确定它是否会保留在内存中,因为它的一个属性仍在内存中。

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