java垃圾回收之Map
来源:互联网 发布:自学python要多久 编辑:程序博客网 时间:2024/06/06 05:04
一直以来,都很喜欢用Map,在小规模应用中,用用Map也没什么,但是应用一大,内存应用方面就要注意了。
几个月前,做项目的时候用到Map,在一篇文章中,我记得说过Map的回收有问题,一试,果然,当设置为null时,还是不能有效进行回收,找了些资料,最后发现了WeakHashMap,当没有指针指向value时,key会被回收,就用它做了个CacheMap,需要多加一个方法
几个月前,做项目的时候用到Map,在一篇文章中,我记得说过Map的回收有问题,一试,果然,当设置为null时,还是不能有效进行回收,找了些资料,最后发现了WeakHashMap,当没有指针指向value时,key会被回收,就用它做了个CacheMap,需要多加一个方法
package org.ofbiz.payment.common;
import java.util.Iterator;
import java.util.WeakHashMap;
/**
* @author zxub 2006-3-22 10:03:22
*/
public class CacheMap extends WeakHashMap
{
public Object getKeyByValue(Object value)
{
Object returnValue = null;
Object key = null;
for (Iterator iter = this.keySet().iterator(); iter.hasNext();)
{
key = iter.next();
if (this.get(key).equals(value))
{
returnValue = key;
break;
}
}
return returnValue;
}
}
这里的应用刚好与Map相反了,经测试,能有效释放内存。 import java.util.Iterator;
import java.util.WeakHashMap;
/**
* @author zxub 2006-3-22 10:03:22
*/
public class CacheMap extends WeakHashMap
{
public Object getKeyByValue(Object value)
{
Object returnValue = null;
Object key = null;
for (Iterator iter = this.keySet().iterator(); iter.hasNext();)
{
key = iter.next();
if (this.get(key).equals(value))
{
returnValue = key;
break;
}
}
return returnValue;
}
}
- java垃圾回收之Map
- java垃圾回收之Map
- Java之垃圾回收
- java虚拟机之垃圾回收
- Java虚拟机之垃圾回收
- java面试之垃圾回收
- Java虚拟机之垃圾回收
- java垃圾回收之CMS
- Java的垃圾回收之算法
- Java的垃圾回收之算法
- Java的垃圾回收之算法
- 析JAVA之垃圾回收机制
- Java的垃圾回收之算法
- Java的垃圾回收之算法
- 析JAVA之垃圾回收机制
- 析JAVA之垃圾回收机制
- 《java performance》读书笔记之 jvm 垃圾回收
- java垃圾回收之循环引用
- Elicpse简介
- 网络招聘巨头亏损引模式之辩
- 汇总c#.net常用函数和方法集
- 汇总c#.net常用函数和方法集
- VB6实现枚举进程所拥有的特权
- java垃圾回收之Map
- php正则校验用户名
- ajax与java高级程序设计 学习摘要,开发工具
- lamp环境搭建
- 华为深圳研发基地员工坠楼身亡
- 详细讲解JavaScript脚本语言的 document 对象
- php注入方法集锦
- wince 手机联机调试
- 推荐几个web2.0的开源项目