HashMap的clear方法


我們都知道HashMap的clear()方法會清楚map的映射關系,至於怎么實現的呢?

下面先看一下clear()方法的源碼

 public void clear() {
        Node<K,V>[] tab;
        modCount++;
        if ((tab = table) != null && size > 0) {
            size = 0;
            for (int i = 0; i < tab.length; ++i)
                tab[i] = null;
        }
    }

可見方法只是把table[]置空了了table數組的元素,及鏈表的表頭元素,如果表頭被置為null,無法進入該鏈表,,而存的key-value呢?

原來現代的虛擬機都采用了可達性分析算法來判斷一個對象是否存活,當一個對象不能通過任何引用找到它就認為它是不可達的,從而視為可回收的對象,所有存的數據都被gc自動回收了。

 

本來想總結一下Java的集合框架呢,但是發現了一個很全的網址,作者也很用心,這里推薦一下http://www.cnblogs.com/skywang12345/p/3323085.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM