日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

java hashmap 缓存

發(fā)布時間:2025/3/20 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java hashmap 缓存 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

引用:http://tonysmith.iteye.com/blog/1106247

一般是采用HashMap來作為緩存的存儲結構,但Java沒有全局變量的概念,怎么保證緩存中的數(shù)據(jù)不被垃圾回收器收集,而造成數(shù)據(jù)的丟失呢? ?

? ?

? 請問一般的緩存是怎樣保證數(shù)據(jù)的獨立性(即脫離垃圾回收器)的???

做一個判斷,HashMap取不到值就到數(shù)據(jù)庫里再讀數(shù)據(jù)

?

系統(tǒng)第一次起來,或是第一次取數(shù)據(jù)后將數(shù)據(jù) ?

? 保存在一個static的Map里即可,凡是緩存的東西 ?

? 總是經(jīng)常用到的,所以一般是保持強引用,GC應該 ?

? 會清理

(1)jive[Jive?是一個開放的 Java 源代碼項目。其目標是建設一個開放結構的,強壯的,易于擴展的基于 JSP 的 論壇。]里面,是使用單態(tài)模式維護一個工廠實例,做為程序的入口,就是無論有多少個在線用戶,都只要從該入口進入.在這個工廠實例中,有一個緩存管理類(DatabaseCacheManager)變量,這個類有幾個公有變量,如DbUserCache(就是緩存訪問過的用戶)等.當要獲取一個user的用戶信息時,它就會先在DbUserCache中查找,如果找不到,那么就從數(shù)據(jù)庫中讀取,再放入緩存中. ?

?????

singleton模式: ?

??public ? class ? DataCache ? { ?

? ? ? ? ? protected ? static ? final ? HashMap ? map ? = ? new ? HashMap(); ? // ? Cache ? table ?

? ?

? ? ? ? ? private ? static ? final ? Object ? lock ? = ? new ? Object(); ?

? ? ? ? ? private ? DataCache() ? {} ? // ? 防止在外部實例化 ?

? ? ? ? ? public ? static ? Object ? getData(Object ? key) ? { ?

? ? ? ? ? ? ? ? ? Object ? v ? = ? map.get(key); ?

? ? ? ? ? ? ? ? ? if ? (v ? == ? null) ? { ?

? ? ? ? ? ? ? ? ? ? ? ? synchronized(lock) ? { ? ?

? ? ? ? ? ? ? ? ? ? ? ? v ? = ? map.get(key); ? ? // ? Check ? again ? to ? avoid ? re-load ?

? ? ? ? ? ? ? ? ? ? ? ? if ? (v ? == ? null) ? loadDataSource(key); ? ?

? ? ? ? ? ? ? ? ? ? ? ? v ? = ? map.get(key); ? // ? retrieves ? data. ?

? ? ? ? ? ? ? ? ? ? ? ? } ?

? ?

? ? ? ? ? ? ? ? ? } ?

? ?

? ? ? ? ? ? ? ? ? return ? v; ?

? ? ? ? ? ? ? ? ? ?

? ? ? ? ? } ?

? ? ? ? ? /* ?

? ? ? ? ? ? *Load ? data ? from ? data ? source. ?

? ? ? ? ? ? */ ?

? ? ? ? ? protected ? static ? synchronized ? void ? loadDataSource(Object ? key) ? { ?

? ? ? ? ? ? ? ? ? Object ? value ? = ? new ? Object(); ? // ? Load ? value ? from ? data ? source ?

? ? ? ? ? ? ? ? ? map.put(key, ? value); ?

? ? ? ? ? } ?

? }

轉載于:https://www.cnblogs.com/sode/archive/2012/04/23/2466113.html

與50位技術專家面對面20年技術見證,附贈技術全景圖

總結

以上是生活随笔為你收集整理的java hashmap 缓存的全部內容,希望文章能夠幫你解決所遇到的問題。

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