日期:2014-05-20  浏览次数:20727 次

用C/S结构做一个项目,为了减少对数据库的访问次数,需要启动项目时把数据存起来放到内存里,供以后使用,请问放到内存里的方式有哪些? 3q~
用C/S结构做一个项目,为了减少对数据库的访问次数,需要启动项目时把数据存起来放到内存里,供以后使用,请问放到内存里的方式有哪些? 

这个功能就类似WEB工程里的session。。。 谢谢啊
j2se?session?内存?c/s? j2se 内存 session c/s

------解决方案--------------------
看实际情况吧,不需要线程安全的就用普通的集合类保存。
需要线程安全的就用concurrent包下的线程安全的集合来保存。
------解决方案--------------------
static HashMap
------解决方案--------------------
全局static的List,Map等集合
------解决方案--------------------
引用:
引用:放到一个map里,登陆成功则用你的方式计算出一个sessionid然后在map里建一个新键不就行啦

放到map里。。 这个map需要是静态的?


不一定,如果比如说你用Application这个类在你的程序里只有一个实例,那就不需要是静态的,但如果你用比如说User这个类在你的程序里不是单例,那就要静态的,需要看情况
------解决方案--------------------
引用:
public static final Map<String, Object> cache = Collections.synchronizedMap(new HashMap<String, Object>());

我决定用这个了。。


了解一下ConcurrentHashMap,你会发现这个在线程安全方面比你那个靠谱。
如果你不需要线程安全,直接用HashMap就好了。