中易网

java内存或者是缓存管理怎么实现?

答案:6  悬赏:70  
解决时间 2021-03-05 10:31
各位大大,请容小弟先描述一下情况。
我用了一个map来做缓存聊天记录,一有新的记录我就往map里面放。
但是我们怎么知道这map的量呢?比如这里面存的数据达到一定量的时候我释放一部分。
map在引用聊天记录,java肯定不会自动释放的。
我忘了说,是static 来定义的map,不是B/S的程序,C/S模式的。
最佳答案
晕, 你确定你是用Java,
OK,不管Java还是C#

1. 定义你的map
HashMap<String, String> map = new HashMap<String, String>();

2. 存入你的信息, 反正你得要有个唯一标识的key,以及你想存的对象
map.put("userid", "userMessage");
....

3. 每次存入后,判断一下当前大小,java 的hashmap是size()方法,如果大于你的最大数,把原来存的前进前出删掉

if(map.size()>100){
//map.remove(arg0)
....
}

更高级内容:
如果对map中的cache内容有过访问,给该内容的权重+1,每次删除的时候先将权重由小至大删除。 这就是命中率缓存,一般缓存都是按这种算法做的,只是具体算法有改进
全部回答
看你是要怎么保留 hibernate有二级缓存 你可以利用,还有就是session cookie都是可以设置的 session会话层面。可以设置时间 cookie基于浏览器 一端即为客户端~
我不太清楚你为什么用map来存放数据?你用什么作为key呢?如果是我做的话我会自定义一个对象,里面大体上有如下属性:发言人、发言时间、发言内容等。然后用list存放这些对象,list是由顺序的。如果长度到达一定值可以把最先放进去的对象清除掉或移动到其他地方。
利用数据池来监听 此map 即可。一旦超过你所设定的量 清空
缓存有2部分,1客户端缓存, 2服务器端缓存 你说的是客户端缓存,jquery主要是利用js进行缓存的,也就是cookie 学java吧,给我email我指点你 [email protected]
1、Java的内存管理就是对象的分配和释放问题。 在Java中,程序员需要通过关键字new为每个对象申请内存空间 (基本类型除外),所有的对象都在堆 (Heap)中分配空间。 对象的释放是由GC决定和执行的。 在Java中,内存的分配是由程序完成的,而内存的释放是有GC完成的,这种收支两条线的方法简化了程序员的工作。但也加重了JVM的工作。这也是Java程序运行速度较慢的原因之一。 GC释放空间方法: 监控每一个对象的运行状态,包括对象的申请、引用、被引用、赋值等。当该对象不再被引用时,释放对象。 2、内存管理结构 Java使用有向图的方式进行内存管理,对于程序的每一个时刻,我们都有一个有向图表示JVM的内存分配情况。 将对象考虑为有向图的顶点,将引用关系考虑为图的有向边,有向边从引用者指向被引对象。另外,每个线程对象可以作为一个图的起始顶点,例如大多程序从main进程开始执行,那么该图就是以main进程顶点开始的一棵根树。在这个有向图中,根顶点可达的对象都是有效对象,GC将不回收这些对象。如果某个对象 (连通子图)与这个根顶点不可达(注意,该图为有向图),那么我们认为这个(这些)对象不再被引用,可以被GC回收。 3、使用有向图方式管理内存的优缺点 Java使用有向图的方式进行内存管理,可以消除引用循环的问题,例如有三个对象,相互引用,只要它们和根进程不可达的,那么GC也是可以回收它们的。 这种方式的优点是管理内存的精度很高,但是效率较低。 另外一种常用的内存管理技术是使用计数器,例如COM模型采用计数器方式管理构件,它与有向图相比,精度行低(很难处理循环引用的问题),但执行效率很高。
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
淘宝商城卖的步步高vivo到底信得过不。有几款
我是电商负责发货的,这个行业允许出错率是多
防灾科技学院到大厂汽车站做什么公交车 需要
CentOS 6.2 太TM卡了 简直无法忍受
“幼儿养育不仅仅是指我们传统观念中的艺术教
sony34寸电视拆机音箱的6.5寸喇叭是中音还是
想买kindle电子书,不要背光的,求推荐一款
96年什么年
怎么在VFP中增加一条空白记录的命令是什么
求助:装有两块硬盘,但是有一块找不到怎么办
求一些好听的韩文歌!(柔和女声的)
诚信快运(镇中南街与镇中街交叉口旁)怎么去啊
为什么我输入数字1时会出现百分号
有谁了解在林孚克斯工作情况
扬州市邗江区的养老保险怎么查询
推荐资讯
奥迪A三保养一次要多少钱
海贼王多少集收的罗宾~正式加入~动画片多少集
鹅头使劲往后仰,仰的翻跟头
怎样使皮肤更白?
单反防水性能 求教啊啊啊啊
艾伦造型这个地址在什么地方,我要处理点事
土星环的形成原因,和组成成分,要用自己的话
银恒星地址在什么地方,想过去办事
景源五金在什么地方啊,我要过去处理事情
广西玉林距离广西南昌多少公里.?
我老公出轨,为了孩子,如何挽回他心…
不凝固双皮奶能吃吗怎么办呢?
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?