从Java中阻止对象的阻塞垃圾收集中排除引用

时间:2015-01-13 18:08:37

标签: java garbage-collection

我在Java中有一个List,它允许在多个地方使用相同的对象。 (表行,因此它们不会在内存中多次缓存)。

有没有办法告诉垃圾收集器,他被允许删除仅由此List引用的对象,而不是其他地方?

或者是否有更好的设计来共享这样的对象?

1 个答案:

答案 0 :(得分:2)

  

有没有办法告诉垃圾收集器,他被允许删除仅由此List引用的对象,而不是其他地方?

排序。你想把它变成List<WeakReference<T>>或类似的东西。请参阅WeakReferenceSoftReference的文档,了解每个文档抑制收集程度的详细信息。

现在当您使用该列表的元素时,您需要检查WeakReferenceSoftReference中的值是否已被收集,因此它不是一个透明的变化 - 但我认为这是你正在寻找的。