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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java hashmap 缓存

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

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

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

? ?

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

做一個判斷,HashMap取不到值就到數據庫里再讀數據

?

系統第一次起來,或是第一次取數據后將數據 ?

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

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

? 會清理

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

?????

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 缓存的全部內容,希望文章能夠幫你解決所遇到的問題。

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