我见了一个Scket的服务,用于处理TCP的链接,每当有IP连到我这个服务上,就会开启一个线程。请问,如果这个链接已经断开,我该如何迅速的在内存中清除这个线程所使用的对象?我使用的是jdk1.4.2。如果不立刻清除,某个ip不停的断开连接,将可能造成内存溢出。谢谢!!

解决方案 »

  1.   

    java也有析构函数 finalize ,  但是这个析构函数不同于C++里边的, 类的每个对象都有finalize 这个方法,对象被销毁时会调用这个方法,但是并不表示调用这个方法对象就会被回收, 对象的创建与回收完全又JVM决定,
    我对线程不是很了解, 可不可以kill掉 ? 或者在try catch里边 如果线程断开了 就kill 掉。
      

  2.   

    java中无法显示的回收 内存的 楼主
      

  3.   

    没用的,我测试过,我建了1000个线程对象,然后过10秒钟去 给那些对象置null ,通过任务管理器观察,发现内存占用并未减少,反而多了几kb