欢迎来到天天文库
浏览记录
ID:50991803
大小:55.45 KB
页数:10页
时间:2020-03-08
《Java学习教程-Java中常用缓存Cache机制的实现.docx》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、Cache所谓缓存,就是将程序或系统经常要调用的对象存在内存中,一遍其使用时可以快速调用,不必再去创建新的重复的实例。这样做可以减少系统开销,提高系统效率。缓存主要可分为二大类:一、通过文件缓存,顾名思义文件缓存是指把数据存储在磁盘上,不管你是以XML格式,序列化文件DAT格式还是其它文件格式; 二、内存缓存,也就是实现一个类中静态Map,对这个Map进行常规的增删查.代码如下:1.package lhm.hcy.guge.frameset.cache; 2. 3.import java.util.*; 4. 5. //D
2、escription: 管理缓存 6. 7. //可扩展的功能:当chche到内存溢出时必须清除掉最早期的一些缓存对象,这就要求对每个缓存对象保存创建时间 8. 9.public class CacheManager { 10. private static HashMap cacheMap = new HashMap(); 11. 12. //单实例构造方法 13. private CacheManager() { 14. super(); 1. } 2. //获取布尔值的缓存
3、 3. public static boolean getSimpleFlag(String key){ 4. try{ 5. return (Boolean) cacheMap.get(key); 6. }catch(NullPointerException e){ 7. return false; 8. } 9. } 10. public static long getServerStartdt(String key
4、){ 11. try { 12. return (Long)cacheMap.get(key); 13. } catch (Exception ex) { 14. return 0; 15. } 16. } 17. //设置布尔值的缓存 18. public synchronized static boolean setSimpleFlag(String key,boolean flag){ 19. if
5、(flag && getSimpleFlag(key)) {//假如为真不允许被覆盖 20. return false; 21. }else{ 22. cacheMap.put(key, flag); 23. return true; 24. } 25. } 26. public synchronized static boolean setSimpleFlag(String key,long serv
6、erbegrundt){ 27. if (cacheMap.get(key) == null) { 28. cacheMap.put(key,serverbegrundt); 29. return true; 30. }else{ 31. return false; 1. } 2. } 3. 4. 5. //得到缓存。同步静态方法 6. private synchronized static Cac
7、he getCache(String key) { 7. return (Cache) cacheMap.get(key); 8. } 9. 10. //判断是否存在一个缓存 11. private synchronized static boolean hasCache(String key) { 12. return cacheMap.containsKey(key); 13. } 14. 15. //清除所有缓存 16. public synchroni
8、zed static void clearAll() { 17. cacheMap.clear(); 18. } 19. 20. //清除某一类特定缓存,通过遍历HASHMAP下的所有对象,来判断它的KEY与传入的TYPE是否匹配 21. public synchroni
此文档下载收益归作者所有