首页 > 解决方案 > 对象引用变量重新赋值

问题描述

如果我将其引用变量重新分配给另一个对象,该对象会发生什么?Java现在如何管理这个没有任何引用变量的对象?

对象存在于内存堆上,我尝试过但找不到 Java 如何管理如下所述的“悬空”对象。

class Box{...}
...
Box b1 = new Box(); //Instance 1
Box b2 = new Box(); //Instance 2
b1 = b2;
....

在这里,您可以看到实例 1 丢失了它的引用变量。这个物体会发生什么?如果发生这种情况,Java/JVM 如何管理这种情况?

标签: java

解决方案


被引用的对象b1将被垃圾回收

自动垃圾回收是查看堆内存,识别哪些对象正在使用,哪些没有,并删除未使用的对象的过程。使用中的对象或引用的对象意味着程序的某些部分仍然维护指向该对象的指针。程序的任何部分都不再引用未使用的对象或未引用的对象。因此可以回收未引用对象使用的内存。


推荐阅读