java - 尚未被 GC 删除的对象
问题描述
所以垃圾收集器不会立即删除对象,有没有办法设置对已经符合 GC 条件的对象的引用?
Object o = new Object();
o = null; // above object is eligible for GC
// now can we retrieve the above object? as it is not destroyed by GC
解决方案
Object o = new Object();
WeakReference<Object> weakReference = new WeakReference<>(o);
o = null;
o = weakReference.get();
您可以弱引用要取消其引用的对象。除非它被 GC 清除,否则它将可用(更准确地说,弱可达) 。weakReference.get()
当然,如果没有任何类型的引用(强/软/弱/幻影)与它相关,它就会变得完全无法访问。
推荐阅读
- c++ - 如何使用空字段改进 std::tuple?
- python - 使用 Pandas 根据另一列的数据将列的数据插入另一列
- batch-file - 如何在文件中搜索字符串?
- r - 将范围内的输出列值替换为“真”
- c# - 在 UWP 中使用 StyleSelector 更改扫雷游戏的 ListViewItem 样式
- xamarin - Android Mono 版本或支持包版本
- go - Golang 中的小对象是什么?
- javascript - 使用 Swift 4 在 WKWebView 中查找单击的单词
- python-3.x - 努力使用 PYMC3 实现一个非常基本的(3 个分类变量)贝叶斯网络
- android - 构建版本代码 O 无法正确识别