java - 对象引用变量重新赋值
问题描述
如果我将其引用变量重新分配给另一个对象,该对象会发生什么?Java现在如何管理这个没有任何引用变量的对象?
对象存在于内存堆上,我尝试过但找不到 Java 如何管理如下所述的“悬空”对象。
class Box{...}
...
Box b1 = new Box(); //Instance 1
Box b2 = new Box(); //Instance 2
b1 = b2;
....
在这里,您可以看到实例 1 丢失了它的引用变量。这个物体会发生什么?如果发生这种情况,Java/JVM 如何管理这种情况?
解决方案
被引用的对象b1
将被垃圾回收:
自动垃圾回收是查看堆内存,识别哪些对象正在使用,哪些没有,并删除未使用的对象的过程。使用中的对象或引用的对象意味着程序的某些部分仍然维护指向该对象的指针。程序的任何部分都不再引用未使用的对象或未引用的对象。因此可以回收未引用对象使用的内存。
推荐阅读
- visual-studio-code - 如何更改vscode默认下载文件夹?
- python - 我正在尝试创建并调用一个函数来反转字符串并删除小数点前的整数
- azure-functions - CefSharp.OffScreen.NETCore 与 Azure 功能
- c# - Serverless API Gateway/Lambda 下载 PDF 失败
- java - 使用 Http 请求调用多个 url
- python - 发布 PyPI python 包时,何时编译 PyQt5 资源和 ui 文件?
- authentication - 大多数静态网页的浏览器缓存
- c# - Sitronix st7565p 控制器的 LCD 到图像转换
- javascript - Google Script - 有条件地将行从工作表附加到工作表
- python-3.x - 通过数据框的循环创建子图