3
我想清除BST以便利用垃圾收集器。所以,要清除BST,將根設置爲空就足夠了,這樣我最終會得到一堆沒有指向它們的廢棄節點?或者更好地將每個節點設置爲空?清除垃圾收集BST的最佳方法是什麼?
- 這兩種方法是否相同?
- 其中一人會導致內存泄漏?
- 垃圾收集比其他垃圾收集得快嗎?
我也很關心弱引用和強引用等
我想清除BST以便利用垃圾收集器。所以,要清除BST,將根設置爲空就足夠了,這樣我最終會得到一堆沒有指向它們的廢棄節點?或者更好地將每個節點設置爲空?清除垃圾收集BST的最佳方法是什麼?
我也很關心弱引用和強引用等
不能由任何活動線程達到將有資格進行垃圾收集任何對象。
基礎上:
結論:
只需設置root爲null,讓GC遍歷的好時機樹爲他:)
也不應該是必要的,只要BST變得無法訪問。你所提出的與利用垃圾收集器相反,這是垃圾收集器應該避免的那種手動內存管理。 – user2357112
TreeMap是java中的BST(紅黑樹)實現。將BST映射參考設置爲null,以使其收集垃圾。很難預測GC如何收集地圖中的每個對象。 – K139
你把'root root'設置爲null是什麼意思?如果將所有引用記錄爲BST的引用設置爲空,那麼觸發GC就足夠了。不知道性能,但你可以測試它我猜。 – kiruwka