清除BST进行垃圾收集的最佳方法是什么?

时间:2015-04-30 18:46:33

标签: java garbage-collection binary-search-tree

我想清除BST以便利用垃圾收集器。那么,要清除BST,将root设置为null就足够了,这样我最终得到了一堆没有指针的废弃节点?或者将每个节点设置为null是否更好?

  1. 这两种方法是否相同?
  2. 其中一个会导致内存泄漏吗?
  3. 一个人的垃圾收集速度会快吗?
  4. 我也关注弱引用和强引用等。

1 个答案:

答案 0 :(得分:1)

任何活动线程无法访问的任何对象都有资格进行垃圾回收。

基于此:

  1. 没有
  2. 取决于GC的实施。无论如何,作为Java程序员,你无法控制它。你所能做的只是相信它能很好地完成它的工作。此外,将root设置为null是O(1),而将所有引用设为null是O(n),其中n是节点数。
  3. 结论:

    只需将root设置为null,让GC在他的好时刻遍历树:)