在使用list 結合的時候習慣了 list=null ;在建立這樣的方式,可是發現使用list的clear 方法很不錯,尤爲是有大量循環的時候html
以下:java
以下:node
public void clear() { // Clearing all of the links between nodes is "unnecessary", but: // - helps a generational GC if the discarded nodes inhabit // more than one generation // - is sure to free memory even if there is a reachable Iterator for (Node<E> x = first; x != null; ) { Node<E> next = x.next; x.item = null; x.next = null; x.prev = null; x = next; } first = last = null; size = 0; modCount++; }
從上面咱們能夠看到,無論是哪一個實現類的clear 方式都是將裏面的全部元素都釋放了而且清空裏面的屬性 ,這樣咱們就不用在釋放 建立新對象來保存內容而是能夠直接將現有的集合制空再次使用。post
java中list集合經過clear()方法清空,只會將list中的對象變成垃圾回收清空,可是list對象仍是存在。
可是經過list=null後,不只列表中的對象變成了垃圾,爲列表分配的空間也會回收,什麼都不作與賦值NULL同樣,說明直到程序結束也用不上列表list了,它天然就成爲垃圾了.clear()只是清除了對象的引用,使那些對象成爲垃圾. this