當我遇到一個我無法解決自己或在網上找到的問題時,我一直在使用HashMaps。java中的對象。他們沒有更多的分配給變量後會發生什麼?
HashMap<String,HashMap<String,String>> m= new HashMap<>();
HashMap<String,String> t = new HashMap<>();
t.put("test1","1");
m.put("h1",t);
t = new HashMap<>();
t.put("test2,"2");
m.put("h2",t);
System.out.println(m);
這給了我{h1={test1=1}, h2={test2=2}}
這樣大的HashMap同時包含HashMaps這樣的數據。所以問題是,它只是複製較小的HashMaps的數據,或者做兩個「t」HashMaps留在JVM內存中,並且HashMap只是將我鏈接到它們?
#2是答案。數據未被複制,m只是指向哈希映射的兩個實例。 t不指向前一個hashmap實例的事實並不會使其消失,如果其他人指向它(m) – TheZuck 2013-04-18 05:27:55
[閱讀此](http://javarevisited.blogspot.com/2011/04/garbage -collection-in-java.html),然後閱讀更多內容。 – Dariusz 2013-04-18 05:31:09