我在Java中有一个List,它允许在多个地方使用相同的对象。 (表行,因此它们不会在内存中多次缓存)。
有没有办法告诉垃圾收集器,他被允许删除仅由此List引用的对象,而不是其他地方?
或者是否有更好的设计来共享这样的对象?
答案 0 :(得分:2)
有没有办法告诉垃圾收集器,他被允许删除仅由此List引用的对象,而不是其他地方?
排序。你想把它变成List<WeakReference<T>>
或类似的东西。请参阅WeakReference
和SoftReference
的文档,了解每个文档抑制收集程度的详细信息。
现在当您使用该列表的元素时,您需要检查WeakReference
或SoftReference
中的值是否已被收集,因此它不是一个透明的变化 - 但我认为这是你正在寻找的。 p>