好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

WeakHashMap的使用不慎导致内存溢出分析.docx

2页
  • 卖家[上传人]:碎****木
  • 文档编号:292216146
  • 上传时间:2022-05-13
  • 文档格式:DOCX
  • 文档大小:11.82KB
  • / 2 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • WeakHashMap的使用不慎导致内存溢出分析public class Locker {  private static WeakHashMap lockerMap = new WeakHashMap();  private final String id;  private Locker(String id) {  this.id= id;  }  public synchronized static Locker acquire(String id) {  Locker locker = lockerMap.get(key);  if (locker == null) {  locker = new Locker(id);  lockerMap.put(id, locker); //问题代码,导致了entry.key == entry.value.id  //lockerMap.put(new String(id), locker); //这是一种修改方式,保证了WeakHashMap中的key,没有被value直接或间接所引用  }  return locker;  }  public String getId() {  return this.id;  }  public static int getSize() {  return lockerMap.size();  }  }  public class LockerTest extends TestCase {  public void testLocker() {  for (int i = 0; i < 10000000; i++) {  Locker.acquire(“abc“ + i);  if (i % 10000 == 0) {  System.gc();  System.out.println(Locker.getSize()); //输出垃圾回收后的Map的Size  }  }  }  }。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.