




已阅读5页,还剩5页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Cache所谓缓存,就是将程序或系统经常要调用的对象存在内存中,一遍其使用时可以快速调用,不必再去创建新的重复的实例。这样做可以减少系统开销,提高系统效率。缓存主要可分为二大类:一、通过文件缓存,顾名思义文件缓存是指把数据存储在磁盘上,不管你是以XML格式,序列化文件DAT格式还是其它文件格式;二、内存缓存,也就是实现一个类中静态Map,对这个Map进行常规的增删查.代码如下 :1. packagelhm.hcy.guge.frameset.cache;2. 3. importjava.util.*;4. 5. /Description:管理缓存6. 7. /可扩展的功能:当chche到内存溢出时必须清除掉最早期的一些缓存对象,这就要求对每个缓存对象保存创建时间8. 9. publicclassCacheManager10. privatestaticHashMapcacheMap=newHashMap();11. 12. /单实例构造方法13. privateCacheManager()14. super();15. 16. /获取布尔值的缓存17. publicstaticbooleangetSimpleFlag(Stringkey)18. try19. return(Boolean)cacheMap.get(key);20. catch(NullPointerExceptione)21. returnfalse;22. 23. 24. publicstaticlonggetServerStartdt(Stringkey)25. try26. return(Long)cacheMap.get(key);27. catch(Exceptionex)28. return0;29. 30. 31. /设置布尔值的缓存32. publicsynchronizedstaticbooleansetSimpleFlag(Stringkey,booleanflag)33. if(flag&&getSimpleFlag(key)/假如为真不允许被覆盖34. returnfalse;35. else36. cacheMap.put(key,flag);37. returntrue;38. 39. 40. publicsynchronizedstaticbooleansetSimpleFlag(Stringkey,longserverbegrundt)41. if(cacheMap.get(key)=null)42. cacheMap.put(key,serverbegrundt);43. returntrue;44. else45. returnfalse;46. 47. 48. 49. 50. /得到缓存。同步静态方法51. privatesynchronizedstaticCachegetCache(Stringkey)52. return(Cache)cacheMap.get(key);53. 54. 55. /判断是否存在一个缓存56. privatesynchronizedstaticbooleanhasCache(Stringkey)57. returncacheMap.containsKey(key);58. 59. 60. /清除所有缓存61. publicsynchronizedstaticvoidclearAll()62. cacheMap.clear();63. 64. 65. /清除某一类特定缓存,通过遍历HASHMAP下的所有对象,来判断它的KEY与传入的TYPE是否匹配66. publicsynchronizedstaticvoidclearAll(Stringtype)67. Iteratori=cacheMap.entrySet().iterator();68. Stringkey;69. ArrayListarr=newArrayList();70. try71. while(i.hasNext()72. java.util.Map.Entryentry=(java.util.Map.Entry)i.next();73. key=(String)entry.getKey();74. if(key.startsWith(type)/如果匹配则删除掉75. arr.add(key);76. 77. 78. for(intk=0;k<arr.size();k+)79. clearOnly(arr.get(k);80. 81. catch(Exceptionex)82. ex.printStackTrace();83. 84. 85. 86. /清除指定的缓存87. publicsynchronizedstaticvoidclearOnly(Stringkey)88. cacheMap.remove(key);89. 90. 91. /载入缓存92. publicsynchronizedstaticvoidputCache(Stringkey,Cacheobj)93. cacheMap.put(key,obj);94. 95. 96. /获取缓存信息97. publicstaticCachegetCacheInfo(Stringkey)98. 99. if(hasCache(key)100. Cachecache=getCache(key);101. if(cacheExpired(cache)/调用判断是否终止方法102. cache.setExpired(true);103. 104. returncache;105. else106. returnnull;107. 108. 109. /载入缓存信息110. publicstaticvoidputCacheInfo(Stringkey,Cacheobj,longdt,booleanexpired)111. Cachecache=newCache();112. cache.setKey(key);113. cache.setTimeOut(dt+System.currentTimeMillis();/设置多久后更新缓存114. cache.setValue(obj);115. cache.setExpired(expired);/缓存默认载入时,终止状态为FALSE116. cacheMap.put(key,cache);117. 118. /重写载入缓存信息方法119. publicstaticvoidputCacheInfo(Stringkey,Cacheobj,longdt)120. Cachecache=newCache();121. cache.setKey(key);122. cache.setTimeOut(dt+System.currentTimeMillis();123. cache.setValue(obj);124. cache.setExpired(false);125. cacheMap.put(key,cache);126. 127. 128. /判断缓存是否终止129. publicstaticbooleancacheExpired(Cachecache)130. if(null=cache)/传入的缓存不存在131. returnfalse;132. 133. longnowDt=System.currentTimeMillis();/系统当前的毫秒数134. longcacheDt=cache.getTimeOut();/缓存内的过期毫秒数135. if(cacheDt<=0|cacheDt>nowDt)/过期时间小于等于零时,或者过期时间大于当前时间时,则为FALSE136. returnfalse;137. else/大于过期时间即过期138. returntrue;139. 140. 141. 142. /获取缓存中的大小143. publicstaticintgetCacheSize()144. returncacheMap.size();145. 146. 147. /获取指定的类型的大小148. publicstaticintgetCacheSize(Stringtype)149. intk=0;150. Iteratori=cacheMap.entrySet().iterator();151. Stringkey;152. try153. while(i.hasNext()154. java.util.Map.Entryentry=(java.util.Map.Entry)i.next();155. key=(String)entry.getKey();156. if(key.indexOf(type)!=-1)/如果匹配则删除掉157. k+;158. 159. 160. catch(Exceptionex)161. ex.printStackTrace();162. 163. 164. returnk;165. 166. 167. /获取缓存对象中的所有键值名称168. publicstaticArrayListgetCacheAllkey()169. ArrayLista=newArrayList();170. try171. Iteratori=cacheMap.entrySet().iterator();172. while(i.hasNext()173. java.util.Map.Entryentry=(java.util.Map.Entry)i.next();174. a.add(String)entry.getKey();175. 176. catch(Exceptionex)finally177. returna;178. 179. 180. 181. /获取缓存对象中指定类型的键值名称182. publicstaticArrayListgetCacheListkey(Stringtype)183. ArrayLista=newArrayList();184. Stringkey;185. try186. Iteratori=cacheMap.entrySet().iterator();187. while(i.hasNext()188. java.util.Map.Entryentry=(java.util.Map.Entry)i.next();189. key=(String)entry.getKey();190. if(key.indexOf(type)!=-1)191. a.add(key);192. 193. 194. catch(Exceptionex)finally195. returna;196. 197. 198. 199. 200. 201. 202. packagelhm.hcy.guge.frameset.cache;203. 204. publicclassCache205. privateStringkey;/缓存ID206. privateObjectvalue;/缓存数据207. privatelongtimeOut;/更新时间208. privatebooleanexpired;/是否终止209. publicCache()210. super();211. 212. 213. publicCache(Stringkey,Objectvalue,longtimeOut,booleanexpired)214. this.key=key;215. this.value=value;216. this.timeOut=timeOut;217. this.expired=expired;218. 219. 220. publicStringgetKey()221. returnkey;222. 223. 224. publiclonggetTimeOut()225. returntimeOut;226. 227. 228. publicObjectgetValue()229. returnvalue;230. 231. 232. publicvoidsetKey(Stringstring)233. key=string;234. 235. 236. publicvoidsetTimeOut(longl)237. timeOut=l;238. 239. 240. publicvoidsetValue(Objectobject)241. value=object;242. 243. 244. publicbooleanisExpired()245. returnexpired;246. 247. 248. publicvoidsetExpired(booleanb)249. expired=b;250. 251. 252. 253. /测试类,254. classTest255. publicstaticvoidmain(Stringargs)256. System.out.println(CacheManager.getSimpleFlag(alksd);257. /CacheManager.putCache(abc,newCache();258. /CacheM
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《2025语音通讯平台租赁合同》
- 2025设备租赁借款合同
- 2025版劳动合同模板
- 专家教师培训知识课件
- 2026届吉林省长春市绿园区九年级数学第一学期期末考试模拟试题含解析
- 广东省惠州市第五中学2026届数学八上期末监测试题含解析
- 旅游业财务报表编制与解析教程
- 山东省德州市2026届八年级数学第一学期期末质量跟踪监视模拟试题含解析
- 河北省邯郸市复兴区2026届数学九年级第一学期期末达标测试试题含解析
- 邮储银行哈尔滨市方正县2025秋招笔试管理营销专练及答案
- (2024版)小学道德与法治 一年级上册 教学设计
- 《质量管理理论方法与实践》课件-质量管理 ch5 质量功能展开
- 水运工程监理旁站方案(3篇)
- 新疆博物馆课件介绍
- 2025至2030白酒包装行业产业运行态势及投资规划深度研究报告
- 学堂在线 公共管理学 章节测试答案
- 专项质量护理管理制度
- 现金采取限额管理制度
- 2025-2031年中国污水处理及其再生利用市场深度分析及投资战略咨询报告
- 机械加工生产工艺流程图
- (高清版)DB41∕T 742-2012 公路折线配筋先张法预应力混凝土梁设计施工规范
评论
0/150
提交评论