zoukankan      html  css  js  c++  java
  • 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相反了,经测试,能有效释放内存。
  • 相关阅读:
    centos 修改语言、时区
    去除 ufeff
    Docker介绍及使用
    消息队列
    数据结构与算法
    Haystack
    Python面向对象之魔术方法
    关于Redis处理高并发
    Redis
    RESTful规范
  • 原文地址:https://www.cnblogs.com/zxub/p/430893.html
Copyright © 2011-2022 走看看