• java垃圾回收之Map【原创】


      一直以来,都很喜欢用Map,在小规模应用中,用用Map也没什么,但是应用一大,内存应用方面就要注意了。
      几个月前,做项目的时候用到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相反了,经测试,能有效释放内存。
  • 相关阅读:
    移动端兼容性问题解决方案
    h5启动原生APP总结
    前端性能优化
    移动端meta行大全
    CSS3,transform3D立体可拖拽正方体实现原理
    FileReader与FileWriter
    lunix cat tail more等用法
    Scanner用法
    SimpleDateFormat的一些常用用法
    Linux下scp的用法
  • 原文地址:https://www.cnblogs.com/zxub/p/430893.html
Copyright © 2020-2023  润新知