posts - 12,comments - 1,trackbacks - 0
          對soft reference,比較容易理解它的用處。它天生就是為實現cache來設計的。關于weak reference,好像很少有人說的清楚。有的和soft reference混在一起談,有的就是簡單翻譯java doc中的說明,看得出翻譯的人自己也不是很理解,所以只能一筆帶過。

          我也一直不是很清楚它的實際用途,今天我突然想到WeakReference可能的設計目的。

          從java的內存泄漏說起,以前說到java也會內存泄漏的時候往往會舉這樣的例子,對象保存在一個全局表中,造成無法回收。一般的解決方法是不要使用全局表或者記得更新。但在實際開發中,有時必須要使用全局表,但無法明確知道該對象是否可銷毀,因為對象可能被多個線程共享訪問,所以程序不能確切的更新表中的引用。這時候weak reference就有用武之地,用WeakHashMap構造全局表,key和value之間是weak reference,這樣的話程序員就不用考慮更新該表了,只要該對象沒有強引用指向它,gc就可以回收它了。

          回頭去找一個實際的例子對照看看,記得在JDK中,weak reference還是用的很頻繁的。

          posted on 2008-07-25 22:51 白色天堂 閱讀(616) 評論(0)  編輯  收藏

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 凌海市| 五大连池市| 无极县| 德格县| 玛纳斯县| 双桥区| 寿阳县| 惠安县| 错那县| 依安县| 宜章县| 汉源县| 民乐县| 昌吉市| 富阳市| 建德市| 马鞍山市| 绍兴市| 尉氏县| 祁门县| 南京市| 临汾市| 阿克苏市| 子洲县| 阿勒泰市| 察隅县| 禹城市| 和林格尔县| 图们市| 普洱| 安化县| 凤山市| 枣庄市| 合水县| 东辽县| 高州市| 绵阳市| 麦盖提县| 龙井市| 昆山市| 金门县|