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

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

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

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

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

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


          網(wǎng)站導航:
           
          主站蜘蛛池模板: 绥芬河市| 上饶市| 华蓥市| 鲁甸县| 和林格尔县| 清河县| 吐鲁番市| 彰化县| 米易县| 迭部县| 富源县| 鹤山市| 台山市| 兴安盟| 阿巴嘎旗| 桃园市| 射阳县| 大兴区| 上高县| 宣化县| 界首市| 天气| 海宁市| 鄂温| 兴隆县| 巨野县| 丰顺县| 米脂县| 呼图壁县| 安达市| 宁乡县| 临桂县| 富顺县| 菏泽市| 金溪县| 察哈| 泸定县| 确山县| 余干县| 和林格尔县| 武定县|