如果我有多个指向同一个对象的弱引用,并且没有强引用。我可以确定当其中一个返回对象时,这两个弱引用是否完好无损?对同一个对象的多个弱引用是否被清除?
3
A
回答
1
WeakReference wr1 = new WeakReference(objX);
...//somewhere else
WeakReference wr2 = new WeakReference(objX);
现在:
- 如果在某一时刻wr1.get()返回非空,然后wr2.get()将返回非空过。
- 但是wr1和wr2对象本身是独立的gc-ed,它们的gs路径彼此独立,最重要的是独立于objX。
相关问题
- 1. 是否可以确定一个对象是否被另一个对象引用?
- 2. 弱引用被清零,但对象未被释放
- 3. 是否可以在同一个对象内引用对象?
- 4. 我如何知道对象是否可以被弱引用?
- 5. Java中一个对象与另一个对象的弱关联?
- 6. 确定一个对象是否被多个线程访问?
- 7. .NET XmlSerializer和对同一对象的多个引用
- 8. 从std :: vector中清除多个对象?
- 9. 验证对象是否有一个或多个关联对象
- 10. 当我删除一个对象时,被删除的对象是否也被删除了?
- 11. 由一个迭代器引用的对象已被其他对象擦除
- 12. 在c#中如何知道一个弱引用的对象是否会被垃圾收集?
- 13. 2对同一对象的弱引用显示不同的信息
- 14. 确定弱引用的对象是否已释放
- 15. php - 重置/清除一个对象?
- 16. 如何“清除”一个对象?
- 17. 两个对象有相同的引用是绝对相同的?
- 18. 一个对象给另一个对象,不仅仅是对它的引用
- 19. 清除集合对象中的引用
- 20. 引用同一对象的多个用户控件
- 21. 引用另一个对象内的多属性对象
- 22. 创建对象的弱引用
- 23. 对一个对象的所有引用
- 24. 如何检查两个变量是否在Python中引用同一个对象?
- 25. 引用类型是一个对象吗?
- 26. 我创建新引用同一个对象,而不是新的对象
- 27. AS3 - 删除对象被另一个对象
- 28. Python中同一类的多个对象
- 29. 将对象的引用强制转换为对同一类的对象的引用是否有意义?
- 30. 如果一个对象的引用仍然存在,对象是否可以被垃圾收集?
他们将全部设置或清除在一起。但是,如果您依赖于这一事实,我会重新考虑您的设计,因为从一条指令到另一条指令可能会改变。 – 2011-06-17 08:57:52
@Peter_Lawrey我完全相信他们会一起被删除,尽管它可能看起来合乎逻辑。无论如何,依靠功能代码将是一个完全的噩梦。 – Riduidel 2011-06-17 09:05:00
我主要是从理论的角度提出这个问题。我想知道在设计中对同一个对象使用多个弱引用是否安全。我正在考虑使用任务对象,一旦任务完成,我将删除所有强引用。但是,如果稍后检索完成的任务,则需要确保我的模型仍处于一致状态,以便可以跳过其他检查。 – Dorus 2011-06-17 09:19:48