问题描述
各位有经验的Javaer,请问使用Map、List这种集合类做缓存时,需要每天清空一次数据,那么我是用集合自带的clear方法好呢,还是直接重新new一个新的集合,让原来的集合等待gc释放好呢?如果有这方面经验的朋友说说各种方法的利弊,以及企业中常用的解决方案 问题补充:silentJesse 写道
解决方案
量大的时候用clear好 ,量小的时候都可以用new 的话相对比较会耗资源,因为map也是事实上也是用数组的,当map的容易也就是capacity不够时,会自动扩大到原来的capacity*负载因子,这时就需要搬数据了,即从原来的小数组搬到原来的大数组上,这是很耗资源的
解决方案二:
Iterator 跟list map set 比占用内存是最小的.
解决方案三:
大量数据你用迭代吗....
解决方案四:
忘 高手来解答一下..呵呵
解决方案五:
引用如果原来的cache很大,再new一个一样大的。。也可能溢出是的没错..
解决方案六:
如果原来的cache很大,再new一个一样大的。。也可能溢出..
解决方案七:
引用那如果我new的时候直接new一个原大的,是不是可以?主要我考虑clear也比较好资源,我看它的实现也是轮询吧而且还有一个并发问题,如果正在clear的时候,这个map又要被用,是不是会有问题?直接new会比较快速吧,只是占用内存了,等gc后应该就会把原来的内存回收掉也是...用hashtable...是线程安全。但你又有一个问题。说clear比较吃资源
时间: 2024-12-17 21:33:40