句柄虽然没了,但是实例不会被清除呀,只不过你没法控制它了
就好像勺子把折了,但是勺子还在。

解决方案 »

  1.   

    是不是只有线程这种勺子会这样,
    其他的勺子把折了,勺子就没了?
      

  2.   

    不用操心这些问题,垃圾收集器会在适当的时候做出适当的判断。
      

  3.   

    对于一般的对象,如果没有东东再引用它,将等待被gc处理掉
    但上面的代码中,main方法在for循环结束会失去所有对象的句柄(不只是前四个),并不代表别没有别的东东引用他们,大概JVM中的线程管理器还拥有对线程们的引用,直到线程的run()返回。
    这类似于以下代码
    Panel p=new Panel()
    void addText(){
    TextField t=new TextField();
    p.add(t);
    }
    虽然addText()返回时失去了句柄t,但TextField并不会被gc处理掉,因为还有p拥有对他的引用。.