2015-04-02 49 views
1

我有一個HashMap,它是Student類型的。學生是一個用戶定義的對象,它由幾個屬性以及一個名爲College的其他用戶定義對象組成。現在,在使用之後,我想清除HashMap使用的所有內存,並依次清除Student和College對象使用的所有內存。所以,雖然無效,我是否需要顯式無效Student和College對象,然後將NULL引用分配給HashMap對象?或者只給HashMap對象分配NULL會釋放Student和College對象使用的內存?清除集合對象中的引用

Map<String, Student> myMap = new HashMap<String, Student> 
Student std = myMap.get(""); 
College col = std.getCollege(); 
col = null; std = null; 
myMap = null; 

我需要做上述所有以釋放內存HashMap的使用?或者取消HashMap將釋放所有的內存?

+0

對這個傢伙有什麼幫助? – Nikhil 2015-04-14 10:18:49

回答

0

我只是爲此找出答案,並且知道,當我們對任何hashmap對象調用clear方法時,它會對hashmap中的所有對象/內容進行內部迭代,並將其顯式指定爲NULL。然後將哈希映射的大小設置爲0以清除哈希映射。下面是HashMap類的clear()方法的實現。

public void clear() { 
    this.modCount += 1; 
    Entry[] arrayOfEntry = this.table; 
    for (int i = 0; i < arrayOfEntry.length; ++i) 
     arrayOfEntry[i] = null; 
    this.size = 0; 
} 

你可以在eclipse中看到使用jadclipse插件的HashMap類的這個內容。