日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

HashMap与垃圾回收

發(fā)布時(shí)間:2024/1/17 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 HashMap与垃圾回收 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

今天在看Java核心技術(shù)1的時(shí)候看到HashMap的對象,書中講到:?
1.如果有一個(gè)值,對應(yīng)的鍵不再使用他了,但由于key與value之間存在強(qiáng)引用,是不會(huì)被垃圾回收的?
2.垃圾回收器跟蹤活動(dòng)的對象,只要映射對象是活動(dòng)的,其中的所有桶也是活動(dòng)的,它們不能被回收?
所以做了下面的測試:

public class TestJava {public static void main(String[] args) {HashMap map = new HashMap();Test t1 = new Test();Test t2 = new Test();map.put(t1, "1");map.put(t2, "2");t1 = null;System.gc();System.out.println("第1步" + map);t2 = null;System.gc();System.out.println("第2步" + map);map.clear();System.gc();System.out.println("第3步" + map);}}class Test {private String strTest = "該Test對象還存在";@Overridepublic String toString() {return strTest;}@Overrideprotected void finalize() throws Throwable {// TODO Auto-generated method stubSystem.out.println("該Test對象被釋放了");}}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42

測試結(jié)果:?
?
果然,GC不會(huì)回收這兩個(gè)垃圾,這個(gè)跟Java中的HashMap默認(rèn)是強(qiáng)引用有關(guān)的

分析:?

愿意:其實(shí)HashMap存進(jìn)去的是t1跟t2指向的地址(堆內(nèi)存中兩條黑色的線)作為key,但進(jìn)行t1=null,t2=null的時(shí)候,本來按照常理來說,Java回收機(jī)制會(huì)對那些沒有引用的堆內(nèi)存對象進(jìn)行回收,但不幸的是,HashMap依舊會(huì)強(qiáng)引用著t1跟t2的堆內(nèi)存對象,導(dǎo)致GC無法對其進(jìn)行回收

下面講更為深入的講解HashMap:?
1.散列表的原理與實(shí)現(xiàn) - 簡書?
2.哈希表(散列表)原理詳解 - 那年聰聰 - CSDN博客?
3.HashMap的存取之美 - gugege - 博客園?
4.理解LinkedHashMap - children - 博客園

創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)

總結(jié)

以上是生活随笔為你收集整理的HashMap与垃圾回收的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。