明確()IMPL我擔心這是一個非常愚蠢的問題,但在這裏有雲:在Java中的LinkedList的
爲什麼在Java中的默認的LinkedList實現clear方法懶得走路的列表,並解開所有的節點?爲什麼不解開標題並將列表的其餘部分連接在一起 - GC將會得到它,不是嗎?
這裏的方法:
/**
* Removes all of the elements from this list.
*/
public void clear() {
Entry<E> e = header.next;
while (e != header) {
Entry<E> next = e.next;
e.next = e.previous = null;
e.element = null;
e = next;
}
header.next = header.previous = header;
size = 0;
modCount++;
}
爲什麼走了?爲什麼不直接跳到header.next = header.previous = header;
?
我能想到的最好方法是幫助GC ...?這個鏈接http://java.sun.com/docs/books/performance/1st_edition/html/JPAppGC.fm.html#997442表明這一點。
TIA ...
我都不同意,說外部代碼無法獲得對LinkedList $ Entry的引用......但是通過LinkedList $ ListItr間接你肯定可以......非常感謝! – overthink 2009-02-22 23:14:33