写了一个A类
类中有个 int i
类中还有个Timer 每秒i自加1
然后在另一个类里声明个HashMap 
new个A放进去 i开始自加
现在的问题是 我想从HashMap删除并销毁A
首先我remove掉了A  发现i还在自加
然后我又试着  A _a= get(key);_a=null;
这样给它指空企图销毁 可i依然再打印
说明new的这个对象并没有销毁我应该怎么做才能彻底从HashMap销毁这个A呢

解决方案 »

  1.   

    将其 timer cancel 掉试试看,过一阵子也许就会被回收了。
      

  2.   

    但是i一直在打印 说明这个run线程一直在运行(假设Timer没有cancel)
    可是确实null了说到这里感觉有点矛盾了
    假设我们不关闭Timer 只是指null  虚拟机可能永远都不会回收
      

  3.   

     java.util.Timer 和 java.util.TimerTask 统称为 Java 计时器框架.
    其实它们是一个线程.
    i有线程引用,所以不会被回收.
    你先把这个Timer 停止,set null