gpt4 book ai didi

java - 重新分配引用对象时对内存的影响

转载 作者:行者123 更新时间:2023-11-29 07:27:44 25 4
gpt4 key购买 nike

在java中使用new关键字时,会分配内存,但是我这里很困惑:

Foo f1 = new Foo(); //consumes memory m1
Foo f2 = new Foo(); //consumes memory m2
f2=f1; //Now, f2 just points to f1, so what about the memory m2

内存 m2 是否只是等待 GC,因为内容未被复制,f2f1 现在指向同一事物 m1 或 m2?在 GC 完成它的工作之前,这是否会导致未使用的内存?

欢迎就此发表任何解释或意见。

最佳答案

f2 之前引用的对象不可访问,将在内存中等待,直到 GC 开始处理它。

现在理论上可以在该空间中创建新对象,因为它不再被使用。但是我不知道有任何 GC 算法可以进行这种“热交换”,而且它可能效率很低。该算法将变得更加复杂,内存使用方面的优势将变得微乎其微。它仍然需要“标记”阶段来识别等待收集的对象。

关于java - 重新分配引用对象时对内存的影响,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48381815/

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