【发布时间】:2016-12-10 10:41:04
【问题描述】:
我了解,当将对象添加到列表时,列表会根据此问题的回答保留对该对象的引用 Is this java Object eligible for garbage collection in List
那么如何使 List 中的对象符合垃圾回收条件,以便从堆中删除而不占用内存?
我问是因为在 JavaFX 中,Vbox 的 getChildren 方法返回包含 vbox 子节点的可观察列表。如果一个 UI 元素被删除但不符合垃圾回收条件,这个对象是否仍然在堆上消耗内存?
【问题讨论】:
-
一个项目只有在没有其他项目引用它时才有资格获得 GC。因此,如果它在 List 中,则无法进行 GC。只有从列表中删除它才有资格
-
“如果 UI 元素被移除但仍不符合垃圾回收条件”是什么意思?发生这种情况的唯一方法是,如果某处有其他对该元素的引用。一旦你从列表中删除它,列表就没有对它的引用,所以如果你没有保留对它的其他引用,它将有资格进行垃圾回收。
标签: java javafx collections garbage-collection observablelist